
/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

longlong unpack_xz_stream(transformer_state_t *xstate)

{
  xz_buf iobuf;
  
}



/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* WARNING: Type propagation algorithm not settling */

undefined8 FUN_0008549d(void)

{
  uint *puVar1;
  bool bVar2;
  char cVar3;
  uint *__ptr;
  void *pvVar4;
  uint uVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  int *piVar13;
  int *piVar14;
  undefined ***pppuVar15;
  int *piVar16;
  int *piVar17;
  undefined4 **ppuVar18;
  int in_GS_OFFSET;
  byte bVar19;
  undefined **local_6c;
  undefined4 local_68;
  undefined4 **local_64;
  undefined4 *local_60;
  undefined4 local_5c;
  undefined4 local_58;
  char *local_54;
  undefined4 *local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 *local_2c;
  undefined4 local_24;
  undefined4 local_20;
  
  bVar19 = 0;
  pppuVar15 = &local_6c;
  local_6c = &__DT_PLTGOT;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (DAT_000dc718 == 0) {
    FUN_000af99c();
  }
  local_64 = &local_38;
  ppuVar18 = local_64;
  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {
    *ppuVar18 = (undefined4 *)0x0;
    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;
  }
  local_60 = (undefined4 *)FUN_0001a288();
  local_2c = local_60 + 0x800;
  local_24 = 0x2000;
  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {
    *local_60 = 0x587a37fd;
    *(undefined2 *)(local_60 + 1) = 0x5a;
    local_30 = 6;
  }
  local_38 = local_60;
  __ptr = (uint *)malloc(0x49c);
  if (__ptr != (uint *)0x0) {
    __ptr[8] = 2;
    pvVar4 = malloc(0x6f28);
    if (pvVar4 == (void *)0x0) {
      free(__ptr);
      __ptr = (uint *)0x0;
    }
    else {
      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;
      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;
      *(undefined4 *)((int)pvVar4 + 0x18) = 0;
      *(undefined4 *)((int)pvVar4 + 0x38) = 0;
      __ptr[0x126] = (uint)pvVar4;
      FUN_00084bcc();
    }
  }
  local_68 = local_34;
  local_5c = 0;
  local_58 = 0;
  iVar9 = 1;
LAB_000855ac:
  uVar5 = ((int *)pppuVar15)[0xf];
  if (uVar5 != ((int *)pppuVar15)[1]) {
LAB_00085687:
    if (iVar9 == 1) {
      bVar2 = false;
      do {
        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {
          if (bVar2) {
            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];
          }
          ((int *)pppuVar15)[-1] = 0x856a9;
          FUN_00084bcc();
          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];
          goto LAB_000856b1;
        }
        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;
        bVar2 = true;
      } while ((uint)((int *)pppuVar15)[1] < uVar5);
      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];
    }
LAB_000856b1:
    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];
    __ptr[4] = ((int *)pppuVar15)[1];
    uVar5 = *__ptr;
    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);
    do {
    } while (9 < uVar5);
LAB_000856cf:
    piVar13 = (int *)pppuVar15;
    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {
    case 0x8571f:
      goto switchD_000856db_caseD_8571f;
    case 0x8577d:
      goto switchD_000856db_caseD_8577d;
    case 0x857d4:
      goto switchD_000856db_caseD_857d4;
    case 0x858aa:
      goto switchD_000856db_caseD_858aa;
    case 0x85b01:
      ((int *)pppuVar15)[-1] = 0x85b0c;
      cVar3 = FUN_0008543e();
      if (cVar3 == '\0') goto LAB_000858b9;
      *__ptr = 1;
      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {
        iVar7 = ((int *)pppuVar15)[0x11];
        iVar9 = 5;
        goto LAB_00085a3d;
      }
      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);
      ((int *)pppuVar15)[-5] = 0x85b5b;
      uVar5 = FUN_000af9bf();
      piVar13 = (int *)pppuVar15 + -1;
      piVar16 = (int *)pppuVar15 + -1;
      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;
      piVar16 = (int *)pppuVar15 + -1;
      if (*(char *)((int)__ptr + 0x9e) != '\0') break;
      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);
      __ptr[7] = uVar5;
      piVar16 = (int *)pppuVar15 + -1;
      if (uVar5 < 0x10) {
        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;
        iVar7 = ((int *)pppuVar15)[0x10];
        iVar9 = 2;
        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);
        goto LAB_00085a3d;
      }
      break;
    case 0x85b95:
switchD_000856db_caseD_85b95:
      uVar12 = *(uint *)((int)piVar13 + 0x38);
      pppuVar15 = (undefined ***)piVar13;
      uVar5 = *(uint *)((int)piVar13 + 0x3c);
      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;
      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {
        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;
        __ptr[4] = uVar12;
        *__ptr = 6;
        uVar5 = 6;
        goto LAB_000856cf;
      }
      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;
      __ptr[0xe] = uVar5;
      __ptr[0x25] = uVar5;
      __ptr[0x24] = 0;
      *__ptr = 2;
    case 0x85bd6:
      piVar13[-1] = 0x85be1;
      cVar3 = FUN_0008543e();
      pppuVar15 = (undefined ***)piVar13;
      if (cVar3 == '\0') goto LAB_000858b9;
      __ptr[0x25] = __ptr[0x25] - 4;
      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);
      piVar13[-5] = 0x85c17;
      uVar12 = FUN_000af9bf();
      uVar5 = __ptr[0x25];
      pppuVar15 = (undefined ***)(piVar13 + -1);
      piVar17 = piVar13 + -1;
      piVar16 = piVar13 + -1;
      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;
      __ptr[0x24] = 2;
      bVar19 = *(byte *)((int)__ptr + 0x99);
      piVar16 = piVar13 + -1;
      if ((bVar19 & 0x3f) == 0) {
        if ((bVar19 & 0x40) == 0) {
          __ptr[10] = 0xffffffff;
          __ptr[0xb] = 0xffffffff;
          if ((char)bVar19 < '\0') goto LAB_00086094;
LAB_00085c61:
          __ptr[0xc] = 0xffffffff;
          __ptr[0xd] = 0xffffffff;
          uVar12 = __ptr[0x24];
          uVar8 = uVar5 - uVar12;
        }
        else {
          piVar13[-5] = uVar5;
          piVar13[-6] = 0x860ee;
          iVar9 = FUN_00084b26();
          pppuVar15 = (undefined ***)(piVar13 + -2);
          piVar17 = piVar13 + -2;
          piVar16 = piVar13 + -2;
          if (iVar9 != 1) goto LAB_00085a34;
          __ptr[10] = __ptr[2];
          __ptr[0xb] = __ptr[3];
          uVar5 = __ptr[0x25];
          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;
LAB_00086094:
          *(uint *)((int)piVar17 + -0x10) = uVar5;
          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;
          iVar9 = FUN_00084b26();
          pppuVar15 = (undefined ***)((int)piVar17 + -4);
          piVar16 = (int *)((int)piVar17 + -4);
          if (iVar9 != 1) goto LAB_00085a34;
          __ptr[0xc] = __ptr[2];
          __ptr[0xd] = __ptr[3];
          uVar5 = __ptr[0x25];
          uVar12 = __ptr[0x24];
          uVar8 = uVar5 - uVar12;
        }
        piVar16 = (int *)pppuVar15;
        if (uVar8 < 2) goto LAB_00085a34;
        __ptr[0x24] = uVar12 + 1;
        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;
        __ptr[0x24] = uVar12 + 2;
        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;
        if (uVar12 + 2 == uVar5) goto LAB_00085a34;
        uVar8 = uVar12 + 3;
        __ptr[0x24] = uVar8;
        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);
        if (0x27 < bVar19) break;
        uVar12 = __ptr[0x126];
        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);
        *(uint *)(uVar12 + 0x30) = uVar10;
        if (*(uint *)(uVar12 + 0x34) < uVar10) {
          iVar7 = *(int *)((int)pppuVar15 + 0x44);
          iVar9 = 4;
          goto LAB_00085a3d;
        }
        *(uint *)(uVar12 + 0x2c) = uVar10;
        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {
          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);
          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;
          free(*(void **)((int)pppuVar15 + -0x10));
          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);
          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;
          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));
          *(void **)(uVar12 + 0x18) = pvVar4;
          if (pvVar4 == (void *)0x0) {
            *(undefined4 *)(uVar12 + 0x38) = 0;
            *(undefined1 *)(__ptr + 9) = 0;
            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;
            iVar9 = 3;
            goto LAB_00085999;
          }
          uVar5 = __ptr[0x25];
          uVar8 = __ptr[0x24];
        }
        *(undefined4 *)(uVar12 + 0x68) = 0;
        *(undefined4 *)(uVar12 + 0x40) = 0;
        *(undefined1 *)(uVar12 + 0x50) = 1;
        *(undefined4 *)(uVar12 + 0x6ee4) = 0;
        if (uVar8 < uVar5) {
          __ptr[0x24] = uVar8 + 1;
          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);
          uVar12 = uVar8 + 1;
          while( true ) {
            if (cVar3 != '\0') goto LAB_00085fed;
            if (uVar12 == uVar5) break;
            __ptr[0x24] = uVar12 + 1;
            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);
            uVar12 = uVar12 + 1;
          }
        }
        __ptr[0x24] = 0;
        __ptr[0xf] = 0;
        __ptr[0x10] = 0;
        __ptr[0x11] = 0;
        __ptr[0x12] = 0;
        *__ptr = 3;
switchD_000856db_caseD_85d53:
        __ptr[4] = ((int *)pppuVar15)[0xe];
        __ptr[5] = ((int *)pppuVar15)[0x11];
        ((int *)pppuVar15)[-1] = 0x85d70;
        iVar9 = FUN_00084c5e();
        ((int *)pppuVar15)[7] = iVar9;
        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];
        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);
        __ptr[0xf] = uVar8;
        __ptr[0x10] = uVar10;
        iVar7 = ((int *)pppuVar15)[0x11];
        uVar5 = __ptr[5];
        ((int *)pppuVar15)[9] = uVar5;
        uVar5 = iVar7 - uVar5;
        ((int *)pppuVar15)[10] = uVar5;
        uVar12 = uVar5 + __ptr[0x11];
        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);
        __ptr[0x11] = uVar12;
        __ptr[0x12] = uVar5;
        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||
           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {
          iVar9 = 7;
          goto LAB_00085a3d;
        }
        if (__ptr[7] == 1) {
          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);
          ((int *)pppuVar15)[-5] = 0x85df3;
          uVar5 = FUN_000af9bf();
          __ptr[6] = ~uVar5;
          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);
        }
        if (((int *)pppuVar15)[7] != 1) {
          iVar9 = ((int *)pppuVar15)[7];
          goto LAB_00085af4;
        }
        piVar16 = (int *)pppuVar15;
        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&
           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;
        uVar5 = __ptr[0x11];
        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&
           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;
        uVar12 = __ptr[0x15];
        uVar10 = __ptr[0xf] + __ptr[0x15];
        uVar8 = __ptr[0xe] + uVar10;
        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);
        __ptr[0x15] = uVar8 + bVar19;
        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +
                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);
        puVar1 = __ptr + 0x17;
        uVar12 = *puVar1;
        *puVar1 = *puVar1 + uVar5;
        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);
        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);
        ((int *)pppuVar15)[-5] = 0x85e83;
        uVar5 = FUN_000af9bf();
        __ptr[0x19] = ~uVar5;
        puVar1 = __ptr + 0x13;
        uVar5 = *puVar1;
        *puVar1 = *puVar1 + 1;
        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);
        *__ptr = 4;
        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);
switchD_000856db_caseD_85e9a:
        uVar12 = __ptr[0xf];
        uVar8 = __ptr[0x10];
        if ((uVar12 & 3) != 0) {
          uVar10 = *(uint *)((int)pppuVar15 + 0x38);
          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);
          if (uVar10 == uVar5) goto LAB_000858bd;
          iVar9 = *(int *)((int)pppuVar15 + 0x34);
          uVar11 = uVar10 + 1;
          *(uint *)((int)pppuVar15 + 0x38) = uVar11;
          piVar16 = (int *)pppuVar15;
          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;
          uVar8 = uVar8 + (0xfffffffe < uVar12);
          while( true ) {
            uVar12 = uVar12 + 1;
            __ptr[0xf] = uVar12;
            __ptr[0x10] = uVar8;
            if ((uVar12 & 3) == 0) break;
            if (uVar11 == uVar5) goto LAB_000858bd;
            uVar11 = uVar11 + 1;
            *(uint *)((int)pppuVar15 + 0x38) = uVar11;
            uVar8 = uVar8 + (0xfffffffe < uVar12);
            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;
          }
        }
        *__ptr = 5;
switchD_000856db_caseD_85eea:
        if (__ptr[7] == 1) {
          uVar12 = ((int *)pppuVar15)[0xf];
          iVar9 = ((int *)pppuVar15)[0xd];
          uVar5 = ((int *)pppuVar15)[0xe];
          if (uVar12 == uVar5) goto LAB_000858bd;
          uVar10 = __ptr[6];
          ((int *)pppuVar15)[7] = uVar10;
          uVar11 = __ptr[1];
          uVar8 = uVar5 + 1;
          ((int *)pppuVar15)[0xe] = uVar8;
          piVar13 = (int *)pppuVar15;
          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))
          goto LAB_00085802;
          uVar11 = uVar11 + 8;
          __ptr[1] = uVar11;
          while (uVar11 < 0x20) {
            uVar5 = uVar12;
            if (uVar12 == uVar8) goto LAB_000858bd;
            uVar11 = __ptr[1];
            uVar8 = uVar8 + 1;
            ((int *)pppuVar15)[0xe] = uVar8;
            if (*(char *)(iVar9 + -1 + uVar8) !=
                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;
            uVar11 = uVar11 + 8;
            __ptr[1] = uVar11;
          }
          __ptr[6] = 0;
          __ptr[1] = 0;
        }
        else {
          uVar12 = __ptr[1];
          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);
          if (uVar12 < uVar8) {
            uVar10 = ((int *)pppuVar15)[0xe];
            uVar5 = ((int *)pppuVar15)[0xf];
            if (uVar10 == uVar5) goto LAB_000858bd;
            uVar11 = uVar10;
            while( true ) {
              uVar11 = uVar11 + 1;
              if (uVar11 == (uVar10 - uVar12) + uVar8) break;
              if (uVar11 == uVar5) {
                ((int *)pppuVar15)[0xe] = uVar5;
                __ptr[1] = (uVar11 - uVar10) + uVar12;
                goto LAB_000858bd;
              }
            }
            ((int *)pppuVar15)[0xe] = uVar11;
          }
          __ptr[1] = 0;
        }
        *__ptr = 1;
        uVar5 = 1;
        goto LAB_000856cf;
      }
      break;
    case 0x85d53:
      goto switchD_000856db_caseD_85d53;
    case 0x85e9a:
      goto switchD_000856db_caseD_85e9a;
    case 0x85eea:
      goto switchD_000856db_caseD_85eea;
    }
LAB_00085fed:
    iVar7 = *(int *)((int)piVar16 + 0x44);
    iVar9 = 6;
    pppuVar15 = (undefined ***)piVar16;
    goto LAB_00085a3d;
  }
  ((int *)pppuVar15)[-1] = 0x855cf;
  uVar5 = FUN_0001b3fd();
  if ((int)uVar5 < 0) {
    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;
    ((int *)pppuVar15)[-5] = 0x855ea;
    FUN_0001930a();
    ((int *)pppuVar15)[4] = -1;
    ((int *)pppuVar15)[5] = -1;
  }
  else if ((uVar5 != 0) || (iVar9 != 1)) {
    ((int *)pppuVar15)[0xf] = uVar5;
    ((int *)pppuVar15)[0xe] = 0;
    ((int *)pppuVar15)[1] = 0;
    goto LAB_00085687;
  }
  if (__ptr == (uint *)0x0) goto LAB_0008562b;
  goto LAB_00085601;
switchD_000856db_caseD_8571f:
  piVar13 = (int *)pppuVar15;
  do {
    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);
    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;
    iVar9 = FUN_00084b26();
    pppuVar15 = (undefined ***)((int)piVar13 + -4);
    if (iVar9 != 1) {
      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;
      FUN_00084c19();
      pppuVar15 = (undefined ***)((int)piVar13 + -4);
LAB_00085af4:
      if (iVar9 == 0) goto LAB_000858b9;
      goto LAB_00085807;
    }
    uVar5 = __ptr[0x1a];
    if (uVar5 == 1) {
      puVar1 = __ptr + 0x1f;
      uVar5 = *puVar1;
      *puVar1 = *puVar1 + __ptr[2];
      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);
      __ptr[0x1a] = 2;
LAB_00085768:
      uVar5 = __ptr[0x1d];
      uVar12 = __ptr[0x1e];
      pppuVar15 = (undefined ***)((int)piVar13 + -4);
    }
    else {
      if (uVar5 != 0) {
        if (uVar5 != 2) goto LAB_00085768;
        puVar1 = __ptr + 0x21;
        uVar5 = *puVar1;
        *puVar1 = *puVar1 + __ptr[2];
        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);
        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)
        ;
        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;
        uVar5 = FUN_000af9bf();
        __ptr[0x23] = ~uVar5;
        uVar5 = __ptr[0x1d] - 1;
        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);
        __ptr[0x1d] = uVar5;
        __ptr[0x1e] = uVar12;
        __ptr[0x1a] = 1;
        pppuVar15 = (undefined ***)((int)piVar13 + -8);
        goto LAB_0008576e;
      }
      uVar5 = __ptr[2];
      uVar12 = __ptr[3];
      __ptr[0x1d] = uVar5;
      __ptr[0x1e] = uVar12;
      piVar13 = (int *)((int)piVar13 + -4);
      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;
      __ptr[0x1a] = 1;
    }
LAB_0008576e:
    piVar13 = (int *)pppuVar15;
  } while (uVar12 != 0 || uVar5 != 0);
  *__ptr = 7;
switchD_000856db_caseD_8577d:
  uVar5 = __ptr[0x1b];
  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;
  uVar12 = __ptr[4];
LAB_00085795:
  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {
    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;
    uVar6 = FUN_00084c19();
    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;
    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;
    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;
    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;
    iVar9 = FUN_00016390();
    piVar16 = (int *)pppuVar15;
    if (iVar9 != 0) goto LAB_000858fc;
    *__ptr = 8;
switchD_000856db_caseD_857d4:
    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);
    iVar9 = *(int *)((int)pppuVar15 + 0x34);
    uVar5 = *(uint *)((int)pppuVar15 + 0x38);
    if (uVar12 != uVar5) {
      uVar8 = __ptr[6];
      uVar10 = __ptr[1];
      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;
      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;
      piVar13 = (int *)pppuVar15;
      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {
LAB_00085802:
        iVar9 = 7;
        pppuVar15 = (undefined ***)piVar13;
LAB_00085807:
        *(undefined1 *)(__ptr + 9) = 0;
        iVar7 = *(int *)((int)pppuVar15 + 0x44);
        goto joined_r0x00085811;
      }
      uVar10 = uVar10 + 8;
      __ptr[1] = uVar10;
      if (uVar10 < 0x20) {
        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;
        iVar7 = *(int *)((int)pppuVar15 + 0x24);
        do {
          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {
            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);
            goto LAB_000858bd;
          }
          uVar5 = __ptr[1];
          iVar7 = iVar7 + 1;
          *(int *)((int)pppuVar15 + 0x38) = iVar7;
          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))
          goto LAB_00085802;
          uVar5 = uVar5 + 8;
          __ptr[1] = uVar5;
        } while (uVar5 < 0x20);
      }
      __ptr[6] = 0;
      __ptr[1] = 0;
      __ptr[0x25] = 0xc;
      *__ptr = 9;
switchD_000856db_caseD_858aa:
      piVar13[-1] = 0x858b5;
      cVar3 = FUN_0008543e();
      pppuVar15 = (undefined ***)piVar13;
      if (cVar3 == '\0') {
LAB_000858b9:
        uVar5 = *(uint *)((int)pppuVar15 + 0x38);
        goto LAB_000858bd;
      }
      piVar16 = piVar13;
      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {
        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);
        piVar13[-5] = 0x85938;
        uVar5 = FUN_000af9bf();
        piVar14 = piVar13 + -1;
        pppuVar15 = (undefined ***)(piVar13 + -1);
        piVar16 = piVar13 + -1;
        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;
        iVar9 = piVar13[0x10];
        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||
            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {
          *(undefined1 *)(__ptr + 9) = 0;
          if (iVar9 != 0) {
            iVar9 = 7;
            pppuVar15 = (undefined ***)(piVar13 + -1);
            goto LAB_00085999;
          }
          goto LAB_00085820;
        }
        *(undefined1 *)(__ptr + 9) = 0;
        if (iVar9 != 0) {
          iVar9 = 1;
          pppuVar15 = (undefined ***)(piVar13 + -1);
          goto LAB_00085999;
        }
        goto LAB_000859c3;
      }
LAB_000858fc:
      pppuVar15 = (undefined ***)piVar16;
      *(undefined1 *)(__ptr + 9) = 0;
      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;
      iVar9 = 7;
      goto LAB_00085999;
    }
  }
  else {
    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;
    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;
    FUN_00084c19();
    uVar5 = *(uint *)((int)pppuVar15 + 0x38);
  }
LAB_000858bd:
  iVar9 = *(int *)((int)pppuVar15 + 0x44);
  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {
    if ((char)__ptr[9] == '\0') {
      *(undefined1 *)(__ptr + 9) = 1;
      if (iVar9 == 0) goto LAB_000859cc;
      iVar9 = 0;
      goto LAB_00085999;
    }
    if (iVar9 != 0) {
      iVar9 = 8;
      goto LAB_00085999;
    }
    goto LAB_00085820;
  }
  *(undefined1 *)(__ptr + 9) = 0;
  if (iVar9 != 0) {
    iVar9 = 0;
    goto LAB_00085999;
  }
  iVar9 = 0;
  goto LAB_000859cc;
LAB_00085a24:
  *(int *)((int)pppuVar15 + 0x38) = iVar9;
  iVar9 = iVar9 + 1;
  piVar16 = (int *)pppuVar15;
  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;
  goto LAB_00085795;
LAB_00085a34:
  iVar7 = *(int *)((int)piVar16 + 0x44);
  iVar9 = 7;
  pppuVar15 = (undefined ***)piVar16;
LAB_00085a3d:
  *(undefined1 *)(__ptr + 9) = 0;
joined_r0x00085811:
  if (iVar7 != 0) {
LAB_00085999:
    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;
    FUN_000886f2();
    puVar1 = (uint *)((int)pppuVar15 + 0x10);
    uVar5 = *puVar1;
    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);
    *(int *)((int)pppuVar15 + 0x14) =
         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));
    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;
    piVar14 = (int *)pppuVar15;
    if (iVar9 == 1) {
LAB_000859c3:
      uVar5 = *(uint *)((int)piVar14 + 0x38);
      iVar9 = 1;
      pppuVar15 = (undefined ***)piVar14;
      goto LAB_000859cc;
    }
    if (iVar9 == 0) {
      uVar5 = *(uint *)((int)pppuVar15 + 0x38);
      iVar9 = 0;
      goto LAB_000859cc;
    }
  }
  if (iVar9 != 2) {
LAB_00085820:
    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;
    ((int *)pppuVar15)[-5] = 0x85833;
    FUN_0001930a();
    ((int *)pppuVar15)[4] = -1;
    ((int *)pppuVar15)[5] = -1;
LAB_00085601:
    uVar5 = __ptr[0x126];
    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;
    free(*(void **)((int)pppuVar15 + -0x10));
    *(uint *)((int)pppuVar15 + -0x10) = uVar5;
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;
    free(*(void **)((int)pppuVar15 + -0x10));
    *(uint **)((int)pppuVar15 + -0x10) = __ptr;
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;
    free(*(void **)((int)pppuVar15 + -0x10));
LAB_0008562b:
    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;
    free(*(void **)((int)pppuVar15 + -0x10));
    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;
      FUN_00017e20();
    }
    return *(undefined8 *)((int)pppuVar15 + 0x10);
  }
  uVar5 = *(uint *)((int)pppuVar15 + 0x38);
  iVar9 = 2;
LAB_000859cc:
  *(uint *)((int)pppuVar15 + 4) = uVar5;
  goto LAB_000855ac;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x5c
CALL 0x00017e81
ADD EDX,0x56577
MOV dword ptr [ESP],EDX
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x4c],EAX
XOR EAX,EAX
MOV ECX,dword ptr [EDX + 0xcf8]
TEST ECX,ECX
JNZ 0x000854d1
CALL 0x000af99c
LEA EDI,[ESP + 0x34]
MOV dword ptr [ESP + 0x8],EDI
MOV ECX,0x6
XOR EAX,EAX
STOSD.REP ES:EDI
MOV EAX,0x4000
CALL 0x0001a288
MOV dword ptr [ESP + 0xc],EAX
MOV dword ptr [ESP + 0x34],EAX
ADD EAX,0x2000
MOV dword ptr [ESP + 0x40],EAX
MOV dword ptr [ESP + 0x48],0x2000
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JNZ 0x0008565f
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX],0x587a37fd
MOV word ptr [EAX + 0x4],0x5a
MOV dword ptr [ESP + 0x3c],0x6
SUB ESP,0xc
PUSH 0x49c
MOV ESI,dword ptr [ESP + 0x10]
MOV EBX,ESI
CALL 0x000168f0
MOV EBP,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0008558d
MOV dword ptr [EAX + 0x20],0x2
SUB ESP,0xc
PUSH 0x6f28
CALL 0x000168f0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000856f1
MOV dword ptr [EAX + 0x3c],0x2
MOV dword ptr [EAX + 0x34],0x4000000
MOV dword ptr [EAX + 0x18],0x0
MOV dword ptr [EAX + 0x38],0x0
MOV dword ptr [EBP + 0x498],EAX
MOV EAX,EBP
CALL 0x00084bcc
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x4],EAX
MOV dword ptr [ESP + 0x10],0x0
MOV dword ptr [ESP + 0x14],0x0
MOV ESI,0x1
MOV EBX,ESI
MOV EAX,dword ptr [ESP + 0x3c]
CMP EAX,dword ptr [ESP + 0x4]
JNZ 0x00085687
MOV EAX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [EAX + 0x8]
MOV ECX,0x2000
MOV EDX,dword ptr [ESP + 0xc]
CALL 0x0001b3fd
TEST EAX,EAX
JNS 0x0008566d
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0xc]
LEA EAX,[EAX + 0xffffaea4]
PUSH EAX
CALL 0x0001930a
ADD ESP,0x10
MOV dword ptr [ESP + 0x10],0xffffffff
MOV dword ptr [ESP + 0x14],0xffffffff
TEST EBP,EBP
JZ 0x0008562b
MOV ESI,dword ptr [EBP + 0x498]
SUB ESP,0xc
PUSH dword ptr [ESI + 0x18]
MOV EDI,dword ptr [ESP + 0x10]
MOV EBX,EDI
CALL 0x000175a0
MOV dword ptr [ESP],ESI
CALL 0x000175a0
MOV dword ptr [ESP],EBP
CALL 0x000175a0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x10]
CALL 0x000175a0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
MOV ESI,dword ptr [ESP + 0x4c]
XOR ESI,dword ptr GS:[0x14]
JNZ 0x0008571a
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [EAX],0x0
JZ 0x00085529
JMP 0x00085511
JZ 0x00085704
MOV dword ptr [ESP + 0x3c],EAX
MOV dword ptr [ESP + 0x38],0x0
MOV dword ptr [ESP + 0x4],0x0
DEC EBX
JNZ 0x000856b1
XOR EDX,EDX
MOV EDI,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [ESP + 0x4]
CMP byte ptr [EDI + ESI*0x1],0x0
JZ 0x000856dd
TEST DL,DL
JZ 0x000856a2
MOV dword ptr [ESP + 0x38],ESI
MOV EAX,EBP
CALL 0x00084bcc
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x4]
MOV dword ptr [EBP + 0x10],EAX
MOV EAX,dword ptr [EBP]
LEA EDX,[EBP + 0x54]
MOV dword ptr [ESP + 0x2c],EDX
CMP EAX,0x9
JA 0x000856ca
MOV EDX,dword ptr [ESP]
MOV EDI,dword ptr [EDX + EAX*0x4 + 0xfffea9b0]
ADD EDI,EDX
JMP EDI
INC dword ptr [ESP + 0x4]
MOV EDI,dword ptr [ESP + 0x4]
MOV DL,0x1
CMP EDI,EAX
JC 0x0008568c
MOV dword ptr [ESP + 0x38],EDI
JMP 0x000856b1
SUB ESP,0xc
PUSH EBP
CALL 0x000175a0
ADD ESP,0x10
XOR EBP,EBP
JMP 0x0008558d
CMP EBX,0x1
JNZ 0x00085673
TEST EBP,EBP
JZ 0x0008562b
JMP 0x00085601
CALL 0x00017e20
LEA ESI,[ESP + 0x38]
LEA EBX,[EBP + 0x7c]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x48]
MOV ECX,ESI
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,EBP
CALL 0x00084b26
ADD ESP,0xc
CMP EAX,0x1
JNZ 0x00085ae7
MOV EAX,dword ptr [EBP + 0x68]
CMP EAX,0x1
JNZ 0x00085a54
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + 0xc]
ADD dword ptr [EBP + 0x7c],EAX
ADC dword ptr [EBP + 0x80],EDX
MOV dword ptr [EBP + 0x68],0x2
MOV EAX,dword ptr [EBP + 0x74]
MOV EDX,dword ptr [EBP + 0x78]
MOV ECX,EDX
MOV EDX,ECX
OR EDX,EAX
JNZ 0x00085726
MOV dword ptr [EBP],0x7
MOV EDI,dword ptr [EBP + 0x6c]
MOV ESI,dword ptr [ESP + 0x34]
MOV EAX,dword ptr [ESP + 0x38]
INC EAX
MOV EDX,dword ptr [ESP + 0x3c]
LEA ECX,[EDX + 0x1]
MOV EDX,dword ptr [EBP + 0x10]
NOT EDX
LEA EBX,[EDX + EAX*0x1]
ADD EBX,EDI
AND EBX,0x3
JNZ 0x00085a0c
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
CALL 0x00084c19
PUSH EAX
PUSH 0x14
LEA EAX,[EBP + 0x7c]
PUSH EAX
LEA EAX,[EBP + 0x54]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x10]
CALL 0x00016390
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000858fc
MOV dword ptr [EBP],0x8
MOV EDX,dword ptr [ESP + 0x3c]
MOV EBX,dword ptr [ESP + 0x34]
MOV ESI,dword ptr [ESP + 0x38]
CMP EDX,ESI
JZ 0x000858bd
MOV EDI,dword ptr [EBP + 0x18]
MOV ECX,dword ptr [EBP + 0x4]
LEA EAX,[ESI + 0x1]
MOV dword ptr [ESP + 0x24],EAX
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,EDI
SHR EAX,CL
CMP byte ptr [EBX + ESI*0x1],AL
JZ 0x0008584b
MOV EDI,0x7
MOV byte ptr [EBP + 0x24],0x0
MOV EBX,dword ptr [ESP + 0x44]
TEST EBX,EBX
JNZ 0x00085999
CMP EDI,0x2
JZ 0x000859e5
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0xc]
LEA EAX,[EAX + 0xffff9e1f]
PUSH EAX
CALL 0x0001930a
ADD ESP,0x10
MOV dword ptr [ESP + 0x10],0xffffffff
MOV dword ptr [ESP + 0x14],0xffffffff
JMP 0x00085601
ADD ECX,0x8
MOV dword ptr [EBP + 0x4],ECX
CMP ECX,0x1f
JA 0x0008588b
MOV dword ptr [ESP + 0x1c],EDX
MOV EAX,dword ptr [ESP + 0x24]
CMP dword ptr [ESP + 0x1c],EAX
JNZ 0x0008586c
MOV EDX,dword ptr [ESP + 0x1c]
MOV ESI,EDX
JMP 0x000858bd
MOV ECX,dword ptr [EBP + 0x4]
INC EAX
MOV dword ptr [ESP + 0x38],EAX
MOV ESI,EDI
SHR ESI,CL
MOV EDX,ESI
CMP byte ptr [EBX + EAX*0x1 + -0x1],DL
JNZ 0x00085802
ADD ECX,0x8
MOV dword ptr [EBP + 0x4],ECX
CMP ECX,0x1f
JBE 0x0008585e
MOV dword ptr [EBP + 0x18],0x0
MOV dword ptr [EBP + 0x4],0x0
MOV dword ptr [EBP + 0x94],0xc
MOV dword ptr [EBP],0x9
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
CALL 0x0008543e
TEST AL,AL
JNZ 0x000858f1
MOV ESI,dword ptr [ESP + 0x38]
MOV EBX,dword ptr [ESP + 0x44]
CMP ESI,dword ptr [ESP + 0x4]
JNZ 0x000859f0
CMP dword ptr [ESP + 0x20],EBX
JNZ 0x000859f0
CMP byte ptr [EBP + 0x24],0x0
JZ 0x00085a00
TEST EBX,EBX
JZ 0x00085820
MOV EDI,0x8
JMP 0x00085999
CMP word ptr [EBP + 0xa2],0x5a59
JZ 0x00085916
MOV byte ptr [EBP + 0x24],0x0
MOV EBX,dword ptr [ESP + 0x44]
TEST EBX,EBX
JZ 0x00085820
MOV EDI,0x7
JMP 0x00085999
LEA EDX,[EBP + 0x9c]
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0xc]
PUSH dword ptr [EAX + 0xcf8]
MOV ECX,0x6
MOV EAX,0xffffffff
CALL 0x000af9bf
NOT EAX
ADD ESP,0xc
CMP EAX,dword ptr [EBP + 0x98]
JNZ 0x000858fc
MOV EBX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [EBP + 0x6c]
MOV EDX,dword ptr [EBP + 0x70]
SHRD EAX,EDX,0x2
SHR EDX,0x2
MOV ESI,EAX
MOV EAX,dword ptr [EBP + 0x9c]
XOR EAX,ESI
OR EDX,EAX
JZ 0x00085977
MOV byte ptr [EBP + 0x24],0x0
TEST EBX,EBX
JZ 0x00085820
MOV EDI,0x7
JMP 0x00085999
CMP byte ptr [EBP + 0xa0],0x0
JNZ 0x00085964
MOVZX EAX,byte ptr [EBP + 0xa1]
CMP EAX,dword ptr [EBP + 0x1c]
JNZ 0x00085964
MOV byte ptr [EBP + 0x24],0x0
TEST EBX,EBX
JZ 0x000859c3
MOV EDI,0x1
MOV ECX,EBX
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x18]
CALL 0x000886f2
MOV EAX,dword ptr [ESP + 0x44]
XOR EDX,EDX
ADD dword ptr [ESP + 0x10],EAX
ADC dword ptr [ESP + 0x14],EDX
MOV dword ptr [ESP + 0x44],0x0
CMP EDI,0x1
JNZ 0x000859d5
MOV ESI,dword ptr [ESP + 0x38]
MOV EBX,0x1
MOV dword ptr [ESP + 0x4],ESI
JMP 0x000855ac
TEST EDI,EDI
JNZ 0x00085817
MOV ESI,dword ptr [ESP + 0x38]
XOR EBX,EBX
JMP 0x000859cc
MOV ESI,dword ptr [ESP + 0x38]
MOV EBX,0x2
JMP 0x000859cc
MOV byte ptr [EBP + 0x24],0x0
TEST EBX,EBX
JZ 0x000859fc
XOR EDI,EDI
JMP 0x00085999
XOR EBX,EBX
JMP 0x000859cc
MOV byte ptr [EBP + 0x24],0x1
TEST EBX,EBX
JZ 0x000859cc
XOR EDI,EDI
JMP 0x00085999
CMP ECX,EAX
JNZ 0x00085a24
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
CALL 0x00084c19
MOV ESI,dword ptr [ESP + 0x38]
JMP 0x000858bd
MOV dword ptr [ESP + 0x38],EAX
INC EAX
CMP byte ptr [ESI + EAX*0x1 + -0x2],0x0
JZ 0x00085795
MOV EBX,dword ptr [ESP + 0x44]
MOV EDI,0x7
MOV byte ptr [EBP + 0x24],0x0
TEST EBX,EBX
JNZ 0x00085999
CMP EDI,0x2
JNZ 0x00085820
JMP 0x000859e5
TEST EAX,EAX
JZ 0x00085abd
CMP EAX,0x2
JNZ 0x00085768
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + 0xc]
ADD dword ptr [EBP + 0x84],EAX
ADC dword ptr [EBP + 0x88],EDX
MOV EAX,dword ptr [EBP + 0x8c]
NOT EAX
SUB ESP,0xc
MOV EDX,dword ptr [ESP + 0xc]
PUSH dword ptr [EDX + 0xcf8]
MOV ECX,0x14
MOV EDX,EBX
CALL 0x000af9bf
NOT EAX
MOV dword ptr [EBP + 0x8c],EAX
MOV EAX,dword ptr [EBP + 0x74]
MOV EDX,dword ptr [EBP + 0x78]
ADD EAX,-0x1
ADC EDX,-0x1
MOV dword ptr [EBP + 0x74],EAX
MOV dword ptr [EBP + 0x78],EDX
MOV dword ptr [EBP + 0x68],0x1
ADD ESP,0xc
JMP 0x0008576e
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + 0x74],EAX
MOV dword ptr [EBP + 0x78],EDX
MOV ECX,dword ptr [EBP + 0x4c]
XOR ECX,EAX
MOV EDI,dword ptr [EBP + 0x50]
XOR EDI,EDX
OR EDI,ECX
JNZ 0x00085802
MOV dword ptr [EBP + 0x68],0x1
JMP 0x0008576e
MOV EDI,EAX
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
CALL 0x00084c19
TEST EDI,EDI
JNZ 0x00085807
JMP 0x000858b9
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
CALL 0x0008543e
TEST AL,AL
JZ 0x000858b9
MOV dword ptr [EBP],0x1
CMP dword ptr [EBP + 0x98],0x587a37fd
MOV EDX,dword ptr [ESP + 0x38]
MOV ESI,dword ptr [ESP + 0x3c]
CMP EDX,ESI
JZ 0x000858bd
MOV EAX,dword ptr [ESP + 0x34]
MOVZX EAX,byte ptr [EAX + EDX*0x1]
TEST AL,AL
JZ 0x0008611d
LEA EAX,[EAX*0x4 + 0x4]
MOV dword ptr [EBP + 0x38],EAX
MOV dword ptr [EBP + 0x94],EAX
MOV dword ptr [EBP + 0x90],0x0
MOV dword ptr [EBP],0x2
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,EBP
CALL 0x0008543e
TEST AL,AL
JZ 0x000858b9
MOV EAX,dword ptr [EBP + 0x94]
LEA ECX,[EAX + -0x4]
MOV dword ptr [EBP + 0x94],ECX
LEA EBX,[EBP + 0x98]
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0xc]
PUSH dword ptr [EAX + 0xcf8]
MOV EDX,EBX
MOV EAX,0xffffffff
CALL 0x000af9bf
MOV EDX,dword ptr [EBP + 0x94]
NOT EAX
ADD ESP,0xc
CMP EAX,dword ptr [EBX + EDX*0x1]
JNZ 0x00085a34
MOV dword ptr [EBP + 0x90],0x2
MOV AL,byte ptr [EBP + 0x99]
TEST AL,0x3f
JNZ 0x00085fed
TEST AL,0x40
JNZ 0x000860db
MOV dword ptr [EBP + 0x28],0xffffffff
MOV dword ptr [EBP + 0x2c],0xffffffff
TEST AL,AL
JS 0x00086094
MOV dword ptr [EBP + 0x30],0xffffffff
MOV dword ptr [EBP + 0x34],0xffffffff
MOV EAX,dword ptr [EBP + 0x90]
MOV ECX,EDX
SUB ECX,EAX
CMP ECX,0x1
JBE 0x00085a34
LEA EBX,[EAX + 0x1]
MOV dword ptr [EBP + 0x90],EBX
CMP byte ptr [EBP + EAX*0x1 + 0x98],0x21
JNZ 0x00085fed
LEA ECX,[EAX + 0x2]
MOV dword ptr [EBP + 0x90],ECX
CMP byte ptr [EBP + EBX*0x1 + 0x98],0x1
JNZ 0x00085fed
CMP ECX,EDX
JZ 0x00085a34
ADD EAX,0x3
MOV dword ptr [EBP + 0x90],EAX
MOV CL,byte ptr [EBP + ECX*0x1 + 0x98]
CMP CL,0x27
JA 0x00085fed
MOV ESI,dword ptr [EBP + 0x498]
MOV EBX,ECX
AND EBX,0x1
ADD EBX,0x2
SHR CL,0x1
MOVZX ECX,CL
ADD ECX,0xb
SHL EBX,CL
MOV dword ptr [ESI + 0x30],EBX
CMP EBX,dword ptr [ESI + 0x34]
JA 0x00086086
MOV dword ptr [ESI + 0x2c],EBX
CMP dword ptr [ESI + 0x3c],0x2
JZ 0x00086009
MOV dword ptr [ESI + 0x68],0x0
MOV dword ptr [ESI + 0x40],0x0
MOV byte ptr [ESI + 0x50],0x1
MOV dword ptr [ESI + 0x6ee4],0x0
CMP EDX,EAX
JA 0x00085fd6
MOV dword ptr [EBP + 0x90],0x0
MOV dword ptr [EBP + 0x3c],0x0
MOV dword ptr [EBP + 0x40],0x0
MOV dword ptr [EBP + 0x44],0x0
MOV dword ptr [EBP + 0x48],0x0
MOV dword ptr [EBP],0x3
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [EBP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x44]
MOV dword ptr [EBP + 0x14],EAX
MOV EAX,dword ptr [EBP + 0x498]
MOV EDX,dword ptr [ESP + 0x8]
CALL 0x00084c5e
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x38]
SUB EAX,dword ptr [EBP + 0x10]
MOV ESI,EAX
XOR EDI,EDI
ADD ESI,dword ptr [EBP + 0x3c]
ADC EDI,dword ptr [EBP + 0x40]
MOV dword ptr [EBP + 0x3c],ESI
MOV dword ptr [EBP + 0x40],EDI
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [EBP + 0x14]
MOV EBX,EAX
MOV dword ptr [ESP + 0x24],EDX
SUB EBX,EDX
MOV dword ptr [ESP + 0x28],EBX
MOV ECX,EBX
XOR EBX,EBX
ADD ECX,dword ptr [EBP + 0x44]
ADC EBX,dword ptr [EBP + 0x48]
MOV dword ptr [EBP + 0x44],ECX
MOV dword ptr [EBP + 0x48],EBX
CMP dword ptr [EBP + 0x28],ESI
MOV EDX,dword ptr [EBP + 0x2c]
SBB EDX,EDI
JC 0x00086165
MOV ESI,dword ptr [EBP + 0x34]
CMP dword ptr [EBP + 0x30],ECX
SBB ESI,EBX
JC 0x00086165
CMP dword ptr [EBP + 0x1c],0x1
JNZ 0x00085dfb
MOV EDX,dword ptr [ESP + 0x24]
ADD EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [EBP + 0x18]
NOT EAX
SUB ESP,0xc
MOV ESI,dword ptr [ESP + 0xc]
PUSH dword ptr [ESI + 0xcf8]
MOV ECX,dword ptr [ESP + 0x38]
CALL 0x000af9bf
NOT EAX
MOV dword ptr [EBP + 0x18],EAX
ADD ESP,0xc
CMP dword ptr [ESP + 0x1c],0x1
JNZ 0x00086138
MOV EAX,dword ptr [EBP + 0x28]
MOV EDX,dword ptr [EBP + 0x2c]
MOV ECX,EDX
AND ECX,EAX
INC ECX
JNZ 0x00086152
MOV EAX,dword ptr [EBP + 0x30]
MOV EDX,dword ptr [EBP + 0x34]
MOV ESI,dword ptr [EBP + 0x44]
MOV EDI,dword ptr [EBP + 0x48]
MOV ECX,EDX
AND ECX,EAX
INC ECX
JNZ 0x00086141
MOV ECX,dword ptr [EBP + 0x3c]
MOV EBX,dword ptr [EBP + 0x40]
ADD ECX,dword ptr [EBP + 0x54]
ADC EBX,dword ptr [EBP + 0x58]
MOV EAX,dword ptr [EBP + 0x38]
XOR EDX,EDX
ADD EAX,ECX
ADC EDX,EBX
MOV ECX,dword ptr [EBP + 0x1c]
MOV EBX,dword ptr [ESP]
MOVZX ECX,byte ptr [EBX + ECX*0x1 + 0xfffea9d8]
XOR EBX,EBX
ADD EAX,ECX
ADC EDX,EBX
MOV dword ptr [EBP + 0x54],EAX
MOV dword ptr [EBP + 0x58],EDX
ADD dword ptr [EBP + 0x5c],ESI
ADC dword ptr [EBP + 0x60],EDI
MOV EAX,dword ptr [EBP + 0x64]
NOT EAX
SUB ESP,0xc
MOV EBX,dword ptr [ESP + 0xc]
PUSH dword ptr [EBX + 0xcf8]
MOV ECX,0x14
MOV EDX,dword ptr [ESP + 0x3c]
CALL 0x000af9bf
NOT EAX
MOV dword ptr [EBP + 0x64],EAX
ADD dword ptr [EBP + 0x4c],0x1
ADC dword ptr [EBP + 0x50],0x0
MOV dword ptr [EBP],0x4
ADD ESP,0xc
MOV EAX,dword ptr [EBP + 0x3c]
MOV EDX,dword ptr [EBP + 0x40]
MOV ECX,EAX
AND ECX,0x3
JZ 0x00085ee3
MOV EDI,dword ptr [ESP + 0x38]
MOV ESI,dword ptr [ESP + 0x3c]
CMP EDI,ESI
JZ 0x000858bd
MOV EBX,dword ptr [ESP + 0x34]
LEA ECX,[EDI + 0x1]
MOV dword ptr [ESP + 0x38],ECX
CMP byte ptr [EBX + EDI*0x1],0x0
JNZ 0x00085a34
ADD EAX,0x1
ADC EDX,0x0
MOV dword ptr [EBP + 0x3c],EAX
MOV dword ptr [EBP + 0x40],EDX
MOV EDI,EAX
AND EDI,0x3
JNZ 0x00085fa5
MOV dword ptr [EBP],0x5
MOV EAX,dword ptr [EBP + 0x1c]
CMP EAX,0x1
JNZ 0x00085f42
MOV EDI,dword ptr [ESP + 0x3c]
MOV EDX,dword ptr [ESP + 0x34]
MOV ESI,dword ptr [ESP + 0x38]
CMP EDI,ESI
JZ 0x000858bd
MOV EAX,dword ptr [EBP + 0x18]
MOV EBX,EAX
MOV dword ptr [ESP + 0x1c],EAX
MOV ECX,dword ptr [EBP + 0x4]
LEA EAX,[ESI + 0x1]
MOV dword ptr [ESP + 0x38],EAX
SHR EBX,CL
CMP byte ptr [EDX + ESI*0x1],BL
JNZ 0x00085802
ADD ECX,0x8
MOV dword ptr [EBP + 0x4],ECX
CMP ECX,0x1f
JA 0x00086171
CMP EDI,EAX
JNZ 0x00086184
MOV ESI,EDI
JMP 0x000858bd
MOV EDI,dword ptr [EBP + 0x4]
MOV EDX,dword ptr [ESP]
MOVZX EAX,byte ptr [EDX + EAX*0x1 + 0xfffea9d8]
CMP EDI,EAX
JC 0x00085f6c
MOV dword ptr [EBP + 0x4],0x0
MOV dword ptr [EBP],0x1
MOV EAX,0x1
JMP 0x000856cf
MOV EDX,dword ptr [ESP + 0x38]
MOV ESI,dword ptr [ESP + 0x3c]
CMP EDX,ESI
JZ 0x000858bd
MOV EBX,EDX
SUB EBX,EDI
ADD EBX,EAX
MOV EAX,EDX
INC EAX
MOV ECX,EAX
SUB ECX,EDX
ADD ECX,EDI
CMP EAX,EBX
JZ 0x00085f9f
CMP EAX,ESI
JNZ 0x00085f84
MOV dword ptr [ESP + 0x38],ESI
MOV dword ptr [EBP + 0x4],ECX
JMP 0x000858bd
MOV dword ptr [ESP + 0x38],EAX
JMP 0x00085f54
CMP ECX,ESI
JZ 0x000858bd
INC ECX
MOV dword ptr [ESP + 0x38],ECX
ADD EAX,0x1
ADC EDX,0x0
CMP byte ptr [EBX + ECX*0x1 + -0x1],0x0
JZ 0x00085ed2
JMP 0x00085a34
LEA ECX,[EAX + 0x1]
MOV dword ptr [EBP + 0x90],ECX
CMP byte ptr [EBP + EAX*0x1 + 0x98],0x0
JZ 0x0008607d
MOV EBX,dword ptr [ESP + 0x44]
MOV EDI,0x6
JMP 0x00085a3d
CMP EBX,dword ptr [ESI + 0x38]
JBE 0x00085d02
SUB ESP,0xc
PUSH dword ptr [ESI + 0x18]
MOV EDI,dword ptr [ESP + 0x10]
MOV EBX,EDI
CALL 0x000175a0
POP EDX
PUSH dword ptr [ESI + 0x30]
CALL 0x000168f0
MOV dword ptr [ESI + 0x18],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00086057
MOV dword ptr [ESI + 0x38],0x0
MOV byte ptr [EBP + 0x24],0x0
MOV EBX,dword ptr [ESP + 0x44]
TEST EBX,EBX
JZ 0x00085820
MOV EDI,0x3
JMP 0x00085999
MOV EDX,dword ptr [EBP + 0x94]
MOV EAX,dword ptr [EBP + 0x90]
JMP 0x00085d02
INC ECX
MOV dword ptr [EBP + 0x90],ECX
CMP byte ptr [EBP + ECX*0x1 + 0x97],0x0
JNZ 0x00085fed
CMP ECX,EDX
JNZ 0x00086068
JMP 0x00085d26
MOV EBX,dword ptr [ESP + 0x44]
MOV EDI,0x4
JMP 0x00085a3d
LEA ECX,[EBP + 0x90]
SUB ESP,0xc
PUSH EDX
MOV EDX,EBX
MOV EAX,EBP
CALL 0x00084b26
ADD ESP,0xc
DEC EAX
JNZ 0x00085a34
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + 0x30],EAX
MOV dword ptr [EBP + 0x34],EDX
MOV EDX,dword ptr [EBP + 0x94]
MOV EAX,dword ptr [EBP + 0x90]
MOV ECX,EDX
SUB ECX,EAX
CMP ECX,0x1
JA 0x00085c82
JMP 0x00085a34
LEA ECX,[EBP + 0x90]
SUB ESP,0xc
PUSH EDX
MOV EDX,EBX
MOV EAX,EBP
CALL 0x00084b26
ADD ESP,0xc
DEC EAX
JNZ 0x00085a34
MOV EAX,dword ptr [EBP + 0x8]
MOV EDX,dword ptr [EBP + 0xc]
MOV dword ptr [EBP + 0x28],EAX
MOV dword ptr [EBP + 0x2c],EDX
MOV AL,byte ptr [EBP + 0x99]
MOV EDX,dword ptr [EBP + 0x94]
TEST AL,AL
JNS 0x00085c61
JMP 0x00086094
LEA EAX,[EDX + 0x1]
MOV dword ptr [ESP + 0x38],EAX
MOV dword ptr [EBP + 0x10],EDX
MOV dword ptr [EBP],0x6
MOV EAX,0x6
JMP 0x000856cf
MOV EDI,dword ptr [ESP + 0x1c]
JMP 0x00085af4
XOR EAX,ESI
XOR EDX,EDI
OR EDX,EAX
JNZ 0x00085a34
JMP 0x00085e2e
XOR EAX,dword ptr [EBP + 0x3c]
XOR EDX,dword ptr [EBP + 0x40]
OR EDX,EAX
JZ 0x00085e17
JMP 0x00085a34
MOV EBX,EAX
MOV EDI,0x7
JMP 0x00085a3d
MOV dword ptr [EBP + 0x18],0x0
MOV dword ptr [EBP + 0x4],0x0
JMP 0x00085f5b
MOV ECX,dword ptr [EBP + 0x4]
INC EAX
MOV dword ptr [ESP + 0x38],EAX
MOV EBX,dword ptr [ESP + 0x1c]
SHR EBX,CL
CMP byte ptr [EDX + EAX*0x1 + -0x1],BL
JNZ 0x00085802
ADD ECX,0x8
MOV dword ptr [EBP + 0x4],ECX
CMP ECX,0x1f
JA 0x00086171
JMP 0x00085f33
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n/* WARNING: Type propagation algorithm not settling */\n\nundefined8 FUN_0008549d(void)\n\n{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}\n\n" comment comment (function_definition "undefined8 FUN_0008549d(void)\n\n{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}" type_identifier (function_declarator "FUN_0008549d(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined ***pppuVar15;" type_identifier (pointer_declarator "***pppuVar15" * (pointer_declarator "**pppuVar15" * (pointer_declarator "*pppuVar15" * identifier))) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "undefined4 **ppuVar18;" type_identifier (pointer_declarator "**ppuVar18" * (pointer_declarator "*ppuVar18" * identifier)) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined **local_6c;" type_identifier (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier)) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "undefined4 **local_64;" type_identifier (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "undefined4 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "char *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "pppuVar15 = &local_6c;" (assignment_expression "pppuVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "local_6c = &__DT_PLTGOT;" (assignment_expression "local_6c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }" if (parenthesized_expression "(DAT_000dc718 == 0)" ( (binary_expression "DAT_000dc718 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_000af99c();\n  }" { (expression_statement "FUN_000af99c();" (call_expression "FUN_000af99c()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_64 = &local_38;" (assignment_expression "local_64 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "ppuVar18 = local_64;" (assignment_expression "ppuVar18 = local_64" identifier = identifier) ;) (for_statement "for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }" for ( (assignment_expression "iVar9 = 6" identifier = number_literal) ; (binary_expression "iVar9 != 0" identifier != number_literal) ; (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ) (compound_statement "{\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }" { (expression_statement "*ppuVar18 = (undefined4 *)0x0;" (assignment_expression "*ppuVar18 = (undefined4 *)0x0" (pointer_expression "*ppuVar18" * identifier) = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;" (assignment_expression "ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "ppuVar18 + (uint)bVar19 * -2 + 1" (binary_expression "ppuVar18 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_60 = (undefined4 *)FUN_0001a288();" (assignment_expression "local_60 = (undefined4 *)FUN_0001a288()" identifier = (cast_expression "(undefined4 *)FUN_0001a288()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a288()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_2c = local_60 + 0x800;" (assignment_expression "local_2c = local_60 + 0x800" identifier = (binary_expression "local_60 + 0x800" identifier + number_literal)) ;) (expression_statement "local_24 = 0x2000;" (assignment_expression "local_24 = 0x2000" identifier = number_literal) ;) (if_statement "if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }" if (parenthesized_expression "((local_54 == (char *)0x0) || (*local_54 != '\0'))" ( (binary_expression "(local_54 == (char *)0x0) || (*local_54 != '\0')" (parenthesized_expression "(local_54 == (char *)0x0)" ( (binary_expression "local_54 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*local_54 != '\0')" ( (binary_expression "*local_54 != '\0'" (pointer_expression "*local_54" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }" { (expression_statement "*local_60 = 0x587a37fd;" (assignment_expression "*local_60 = 0x587a37fd" (pointer_expression "*local_60" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)(local_60 + 1) = 0x5a;" (assignment_expression "*(undefined2 *)(local_60 + 1) = 0x5a" (pointer_expression "*(undefined2 *)(local_60 + 1)" * (cast_expression "(undefined2 *)(local_60 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + 1)" ( (binary_expression "local_60 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_30 = 6;" (assignment_expression "local_30 = 6" identifier = number_literal) ;) })) (expression_statement "local_38 = local_60;" (assignment_expression "local_38 = local_60" identifier = identifier) ;) (expression_statement "__ptr = (uint *)malloc(0x49c);" (assignment_expression "__ptr = (uint *)malloc(0x49c)" identifier = (cast_expression "(uint *)malloc(0x49c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x49c)" identifier (argument_list "(0x49c)" ( number_literal ))))) ;) (if_statement "if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }" if (parenthesized_expression "(__ptr != (uint *)0x0)" ( (binary_expression "__ptr != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }" { (expression_statement "__ptr[8] = 2;" (assignment_expression "__ptr[8] = 2" (subscript_expression "__ptr[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pvVar4 = malloc(0x6f28);" (assignment_expression "pvVar4 = malloc(0x6f28)" identifier = (call_expression "malloc(0x6f28)" identifier (argument_list "(0x6f28)" ( number_literal )))) ;) (if_statement "if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = (uint *)0x0;" (assignment_expression "__ptr = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" else (compound_statement "{\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" { (expression_statement "*(undefined4 *)((int)pvVar4 + 0x3c) = 2;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x3c) = 2" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x3c)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x3c)" ( (binary_expression "(int)pvVar4 + 0x3c" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x34)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x34)" ( (binary_expression "(int)pvVar4 + 0x34" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x18) = 0;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x18) = 0" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x18)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x18)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x38) = 0;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x38) = 0" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x38)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x38)" ( (binary_expression "(int)pvVar4 + 0x38" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__ptr[0x126] = (uint)pvVar4;" (assignment_expression "__ptr[0x126] = (uint)pvVar4" (subscript_expression "__ptr[0x126]" identifier [ number_literal ]) = (cast_expression "(uint)pvVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_00084bcc();" (call_expression "FUN_00084bcc()" identifier (argument_list "()" ( ))) ;) }))) })) (expression_statement "local_68 = local_34;" (assignment_expression "local_68 = local_34" identifier = identifier) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];" statement_identifier : (expression_statement "uVar5 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xf]" identifier = (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;)) (if_statement "if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }" if (parenthesized_expression "(uVar5 != ((int *)pppuVar15)[1])" ( (binary_expression "uVar5 != ((int *)pppuVar15)[1]" identifier != (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )) (compound_statement "{\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }" { (labeled_statement "LAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" statement_identifier : (if_statement "if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (do_statement "do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);" do (compound_statement "{\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      }" { (if_statement "if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }" if (parenthesized_expression "(*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0')" ( (binary_expression "*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0'" (pointer_expression "*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" * (cast_expression "(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" ( (binary_expression "((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[3]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }" { (if_statement "if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }" { (expression_statement "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];" (assignment_expression "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) })) (expression_statement "((int *)pppuVar15)[-1] = 0x856a9;" (assignment_expression "((int *)pppuVar15)[-1] = 0x856a9" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00084bcc();" (call_expression "FUN_00084bcc()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];" (assignment_expression "((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe]" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (goto_statement "goto LAB_000856b1;" goto statement_identifier ;) })) (expression_statement "((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;" (assignment_expression "((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (binary_expression "((int *)pppuVar15)[1] + 1" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal)) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) while (parenthesized_expression "((uint)((int *)pppuVar15)[1] < uVar5)" ( (binary_expression "(uint)((int *)pppuVar15)[1] < uVar5" (subscript_expression "(uint)((int *)pppuVar15)[1]" (call_expression "(uint)((int *)pppuVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ]) < identifier) )) ;) (expression_statement "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];" (assignment_expression "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) }))) (labeled_statement "LAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];" statement_identifier : (expression_statement "((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];" (assignment_expression "((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11]" (subscript_expression "((int *)pppuVar15)[8]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;)) (expression_statement "__ptr[4] = ((int *)pppuVar15)[1];" (assignment_expression "__ptr[4] = ((int *)pppuVar15)[1]" (subscript_expression "__ptr[4]" identifier [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = *__ptr;" (assignment_expression "uVar5 = *__ptr" identifier = (pointer_expression "*__ptr" * identifier)) ;) (expression_statement "((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);" (assignment_expression "((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15)" (subscript_expression "((int *)pppuVar15)[0xb]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (cast_expression "(int)(__ptr + 0x15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(__ptr + 0x15)" ( (binary_expression "__ptr + 0x15" identifier + number_literal) )))) ;) (do_statement "do {\n    } while (9 < uVar5);" do (compound_statement "{\n    }" { }) while (parenthesized_expression "(9 < uVar5)" ( (binary_expression "9 < uVar5" number_literal < identifier) )) ;) (labeled_statement "LAB_000856cf:\n    piVar13 = (int *)pppuVar15;" statement_identifier : (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (switch_statement "switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }" switch (parenthesized_expression "(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15)" ( (binary_expression "*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15" (pointer_expression "*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4)" * (cast_expression "(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + -0x15650 + uVar5 * 4)" ( (binary_expression "(int)*pppuVar15 + -0x15650 + uVar5 * 4" (binary_expression "(int)*pppuVar15 + -0x15650" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) + (binary_expression "uVar5 * 4" identifier * number_literal)) )))) + (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier))) )) (compound_statement "{\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }" { (case_statement "case 0x8571f:\n      goto switchD_000856db_caseD_8571f;" case number_literal : (goto_statement "goto switchD_000856db_caseD_8571f;" goto statement_identifier ;)) (case_statement "case 0x8577d:\n      goto switchD_000856db_caseD_8577d;" case number_literal : (goto_statement "goto switchD_000856db_caseD_8577d;" goto statement_identifier ;)) (case_statement "case 0x857d4:\n      goto switchD_000856db_caseD_857d4;" case number_literal : (goto_statement "goto switchD_000856db_caseD_857d4;" goto statement_identifier ;)) (case_statement "case 0x858aa:\n      goto switchD_000856db_caseD_858aa;" case number_literal : (goto_statement "goto switchD_000856db_caseD_858aa;" goto statement_identifier ;)) (case_statement "case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;" case number_literal : (expression_statement "((int *)pppuVar15)[-1] = 0x85b0c;" (assignment_expression "((int *)pppuVar15)[-1] = 0x85b0c" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" identifier = (call_expression "FUN_0008543e()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 == '\0') goto LAB_000858b9;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000858b9;" goto statement_identifier ;)) (expression_statement "*__ptr = 1;" (assignment_expression "*__ptr = 1" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (if_statement "if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }" if (parenthesized_expression "((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a))" ( (binary_expression "(__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)" (parenthesized_expression "(__ptr[0x26] != 0x587a37fd)" ( (binary_expression "__ptr[0x26] != 0x587a37fd" (subscript_expression "__ptr[0x26]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((short)__ptr[0x27] != 0x5a)" ( (binary_expression "(short)__ptr[0x27] != 0x5a" (cast_expression "(short)__ptr[0x27]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "__ptr[0x27]" identifier [ number_literal ])) != number_literal) ))) )) (compound_statement "{\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }" { (expression_statement "iVar7 = ((int *)pppuVar15)[0x11];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x11]" identifier = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "iVar9 = 5;" (assignment_expression "iVar9 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" * (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" ( (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) ))))) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x85b5b;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85b5b" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar13 = (int *)pppuVar15 + -1;" (assignment_expression "piVar13 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (if_statement "if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;" if (parenthesized_expression "(~uVar5 != __ptr[0x28])" ( (binary_expression "~uVar5 != __ptr[0x28]" (unary_expression "~uVar5" ~ identifier) != (subscript_expression "__ptr[0x28]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (if_statement "if (*(char *)((int)__ptr + 0x9e) != '\0') break;" if (parenthesized_expression "(*(char *)((int)__ptr + 0x9e) != '\0')" ( (binary_expression "*(char *)((int)__ptr + 0x9e) != '\0'" (pointer_expression "*(char *)((int)__ptr + 0x9e)" * (cast_expression "(char *)((int)__ptr + 0x9e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x9e)" ( (binary_expression "(int)__ptr + 0x9e" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);" (assignment_expression "uVar5 = (uint)*(byte *)((int)__ptr + 0x9f)" identifier = (binary_expression "(uint)*(byte *)((int)__ptr + 0x9f)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)__ptr + 0x9f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x9f)" ( (binary_expression "(int)__ptr + 0x9f" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__ptr[7] = uVar5;" (assignment_expression "__ptr[7] = uVar5" (subscript_expression "__ptr[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (if_statement "if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }" if (parenthesized_expression "(uVar5 < 0x10)" ( (binary_expression "uVar5 < 0x10" identifier < number_literal) )) (compound_statement "{\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }" { (if_statement "if (uVar5 < 2) goto switchD_000856db_caseD_85b95;" if (parenthesized_expression "(uVar5 < 2)" ( (binary_expression "uVar5 < 2" identifier < number_literal) )) (goto_statement "goto switchD_000856db_caseD_85b95;" goto statement_identifier ;)) (expression_statement "iVar7 = ((int *)pppuVar15)[0x10];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x10]" identifier = (subscript_expression "((int *)pppuVar15)[0x10]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" identifier = (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int *)pppuVar15 + -1)" ( (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;" case number_literal : (labeled_statement "switchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);" statement_identifier : (expression_statement "uVar12 = *(uint *)((int)piVar13 + 0x38);" (assignment_expression "uVar12 = *(uint *)((int)piVar13 + 0x38)" identifier = (pointer_expression "*(uint *)((int)piVar13 + 0x38)" * (cast_expression "(uint *)((int)piVar13 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x38)" ( (binary_expression "(int)piVar13 + 0x38" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "uVar5 = *(uint *)((int)piVar13 + 0x3c);" (assignment_expression "uVar5 = *(uint *)((int)piVar13 + 0x3c)" identifier = (pointer_expression "*(uint *)((int)piVar13 + 0x3c)" * (cast_expression "(uint *)((int)piVar13 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x3c)" ( (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;" if (parenthesized_expression "(uVar12 == *(uint *)((int)piVar13 + 0x3c))" ( (binary_expression "uVar12 == *(uint *)((int)piVar13 + 0x3c)" identifier == (pointer_expression "*(uint *)((int)piVar13 + 0x3c)" * (cast_expression "(uint *)((int)piVar13 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x3c)" ( (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (if_statement "if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }" if (parenthesized_expression "(*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0)" ( (binary_expression "*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0" (pointer_expression "*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" * (cast_expression "(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (binary_expression "*(int *)((int)piVar13 + 0x34) + uVar12" (pointer_expression "*(int *)((int)piVar13 + 0x34)" * (cast_expression "(int *)((int)piVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x34)" ( (binary_expression "(int)piVar13 + 0x34" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + identifier) )))) == number_literal) )) (compound_statement "{\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }" { (expression_statement "*(uint *)((int)piVar13 + 0x38) = uVar12 + 1;" (assignment_expression "*(uint *)((int)piVar13 + 0x38) = uVar12 + 1" (pointer_expression "*(uint *)((int)piVar13 + 0x38)" * (cast_expression "(uint *)((int)piVar13 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x38)" ( (binary_expression "(int)piVar13 + 0x38" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "__ptr[4] = uVar12;" (assignment_expression "__ptr[4] = uVar12" (subscript_expression "__ptr[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*__ptr = 6;" (assignment_expression "*__ptr = 6" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (expression_statement "uVar5 = 6;" (assignment_expression "uVar5 = 6" identifier = number_literal) ;) (goto_statement "goto LAB_000856cf;" goto statement_identifier ;) })) (expression_statement "uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;" (assignment_expression "uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4" identifier = (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4" (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4" (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (binary_expression "*(int *)((int)piVar13 + 0x34) + uVar12" (pointer_expression "*(int *)((int)piVar13 + 0x34)" * (cast_expression "(int *)((int)piVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x34)" ( (binary_expression "(int)piVar13 + 0x34" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + identifier) )))) * number_literal) + number_literal)) ;) (expression_statement "__ptr[0xe] = uVar5;" (assignment_expression "__ptr[0xe] = uVar5" (subscript_expression "__ptr[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x25] = uVar5;" (assignment_expression "__ptr[0x25] = uVar5" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x24] = 0;" (assignment_expression "__ptr[0x24] = 0" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*__ptr = 2;" (assignment_expression "*__ptr = 2" (pointer_expression "*__ptr" * identifier) = number_literal) ;)) (case_statement "case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;" case number_literal : (expression_statement "piVar13[-1] = 0x85be1;" (assignment_expression "piVar13[-1] = 0x85be1" (subscript_expression "piVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" identifier = (call_expression "FUN_0008543e()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (cVar3 == '\0') goto LAB_000858b9;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000858b9;" goto statement_identifier ;)) (expression_statement "__ptr[0x25] = __ptr[0x25] - 4;" (assignment_expression "__ptr[0x25] = __ptr[0x25] - 4" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) = (binary_expression "__ptr[0x25] - 4" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);" (assignment_expression "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8)" (subscript_expression "piVar13[-4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(*piVar13 + 0xcf8)" * (cast_expression "(undefined4 *)(*piVar13 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar13 + 0xcf8)" ( (binary_expression "*piVar13 + 0xcf8" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) ;) (expression_statement "piVar13[-5] = 0x85c17;" (assignment_expression "piVar13[-5] = 0x85c17" (subscript_expression "piVar13[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar12 = FUN_000af9bf();" (assignment_expression "uVar12 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (expression_statement "piVar17 = piVar13 + -1;" (assignment_expression "piVar17 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (if_statement "if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;" if (parenthesized_expression "(~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98))" ( (binary_expression "~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)" (unary_expression "~uVar12" ~ identifier) != (pointer_expression "*(uint *)((int)__ptr + uVar5 + 0x98)" * (cast_expression "(uint *)((int)__ptr + uVar5 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar5 + 0x98)" ( (binary_expression "(int)__ptr + uVar5 + 0x98" (binary_expression "(int)__ptr + uVar5" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[0x24] = 2;" (assignment_expression "__ptr[0x24] = 2" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar19 = *(byte *)((int)__ptr + 0x99);" (assignment_expression "bVar19 = *(byte *)((int)__ptr + 0x99)" identifier = (pointer_expression "*(byte *)((int)__ptr + 0x99)" * (cast_expression "(byte *)((int)__ptr + 0x99)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x99)" ( (binary_expression "(int)__ptr + 0x99" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (if_statement "if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }" if (parenthesized_expression "((bVar19 & 0x3f) == 0)" ( (binary_expression "(bVar19 & 0x3f) == 0" (parenthesized_expression "(bVar19 & 0x3f)" ( (binary_expression "bVar19 & 0x3f" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }" { (if_statement "if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" if (parenthesized_expression "((bVar19 & 0x40) == 0)" ( (binary_expression "(bVar19 & 0x40) == 0" (parenthesized_expression "(bVar19 & 0x40)" ( (binary_expression "bVar19 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" { (expression_statement "__ptr[10] = 0xffffffff;" (assignment_expression "__ptr[10] = 0xffffffff" (subscript_expression "__ptr[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0xb] = 0xffffffff;" (assignment_expression "__ptr[0xb] = 0xffffffff" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((char)bVar19 < '\0') goto LAB_00086094;" if (parenthesized_expression "((char)bVar19 < '\0')" ( (binary_expression "(char)bVar19 < '\0'" (cast_expression "(char)bVar19" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00086094;" goto statement_identifier ;)) (labeled_statement "LAB_00085c61:\n          __ptr[0xc] = 0xffffffff;" statement_identifier : (expression_statement "__ptr[0xc] = 0xffffffff;" (assignment_expression "__ptr[0xc] = 0xffffffff" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "__ptr[0xd] = 0xffffffff;" (assignment_expression "__ptr[0xd] = 0xffffffff" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar12 = __ptr[0x24];" (assignment_expression "uVar12 = __ptr[0x24]" identifier = (subscript_expression "__ptr[0x24]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar5 - uVar12;" (assignment_expression "uVar8 = uVar5 - uVar12" identifier = (binary_expression "uVar5 - uVar12" identifier - identifier)) ;) }) (else_clause "else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" else (compound_statement "{\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" { (expression_statement "piVar13[-5] = uVar5;" (assignment_expression "piVar13[-5] = uVar5" (subscript_expression "piVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[-6] = 0x860ee;" (assignment_expression "piVar13[-6] = 0x860ee" (subscript_expression "piVar13[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" identifier = (call_expression "FUN_00084b26()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -2);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -2)" identifier = (cast_expression "(undefined ***)(piVar13 + -2)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -2)" ( (binary_expression "piVar13 + -2" identifier + number_literal) )))) ;) (expression_statement "piVar17 = piVar13 + -2;" (assignment_expression "piVar17 = piVar13 + -2" identifier = (binary_expression "piVar13 + -2" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar13 + -2;" (assignment_expression "piVar16 = piVar13 + -2" identifier = (binary_expression "piVar13 + -2" identifier + number_literal)) ;) (if_statement "if (iVar9 != 1) goto LAB_00085a34;" if (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[10] = __ptr[2];" (assignment_expression "__ptr[10] = __ptr[2]" (subscript_expression "__ptr[10]" identifier [ number_literal ]) = (subscript_expression "__ptr[2]" identifier [ number_literal ])) ;) (expression_statement "__ptr[0xb] = __ptr[3];" (assignment_expression "__ptr[0xb] = __ptr[3]" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) = (subscript_expression "__ptr[3]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (if_statement "if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;" if (parenthesized_expression "(-1 < *(char *)((int)__ptr + 0x99))" ( (binary_expression "-1 < *(char *)((int)__ptr + 0x99)" number_literal < (pointer_expression "*(char *)((int)__ptr + 0x99)" * (cast_expression "(char *)((int)__ptr + 0x99)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x99)" ( (binary_expression "(int)__ptr + 0x99" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00085c61;" goto statement_identifier ;)) (labeled_statement "LAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;" statement_identifier : (expression_statement "*(uint *)((int)piVar17 + -0x10) = uVar5;" (assignment_expression "*(uint *)((int)piVar17 + -0x10) = uVar5" (pointer_expression "*(uint *)((int)piVar17 + -0x10)" * (cast_expression "(uint *)((int)piVar17 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + -0x10)" ( (binary_expression "(int)piVar17 + -0x10" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;" (assignment_expression "*(undefined4 *)((int)piVar17 + -0x14) = 0x860a7" (pointer_expression "*(undefined4 *)((int)piVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + -0x14)" ( (binary_expression "(int)piVar17 + -0x14" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" identifier = (call_expression "FUN_00084b26()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar17 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar17 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar17 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar17 + -4)" ( (binary_expression "(int)piVar17 + -4" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar16 = (int *)((int)piVar17 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar17 + -4)" identifier = (cast_expression "(int *)((int)piVar17 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + -4)" ( (binary_expression "(int)piVar17 + -4" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar9 != 1) goto LAB_00085a34;" if (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[0xc] = __ptr[2];" (assignment_expression "__ptr[0xc] = __ptr[2]" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) = (subscript_expression "__ptr[2]" identifier [ number_literal ])) ;) (expression_statement "__ptr[0xd] = __ptr[3];" (assignment_expression "__ptr[0xd] = __ptr[3]" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) = (subscript_expression "__ptr[3]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = __ptr[0x24];" (assignment_expression "uVar12 = __ptr[0x24]" identifier = (subscript_expression "__ptr[0x24]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar5 - uVar12;" (assignment_expression "uVar8 = uVar5 - uVar12" identifier = (binary_expression "uVar5 - uVar12" identifier - identifier)) ;) }))) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar8 < 2) goto LAB_00085a34;" if (parenthesized_expression "(uVar8 < 2)" ( (binary_expression "uVar8 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[0x24] = uVar12 + 1;" (assignment_expression "__ptr[0x24] = uVar12 + 1" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;" if (parenthesized_expression "(*(char *)((int)__ptr + uVar12 + 0x98) != '!')" ( (binary_expression "*(char *)((int)__ptr + uVar12 + 0x98) != '!'" (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x98)" * (cast_expression "(char *)((int)__ptr + uVar12 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x98)" ( (binary_expression "(int)__ptr + uVar12 + 0x98" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) != (char_literal "'!'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "__ptr[0x24] = uVar12 + 2;" (assignment_expression "__ptr[0x24] = uVar12 + 2" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (if_statement "if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;" if (parenthesized_expression "(*(char *)((int)__ptr + uVar12 + 0x99) != '\x01')" ( (binary_expression "*(char *)((int)__ptr + uVar12 + 0x99) != '\x01'" (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x99)" * (cast_expression "(char *)((int)__ptr + uVar12 + 0x99)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x99)" ( (binary_expression "(int)__ptr + uVar12 + 0x99" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if (uVar12 + 2 == uVar5) goto LAB_00085a34;" if (parenthesized_expression "(uVar12 + 2 == uVar5)" ( (binary_expression "uVar12 + 2 == uVar5" (binary_expression "uVar12 + 2" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar12 + 3;" (assignment_expression "uVar8 = uVar12 + 3" identifier = (binary_expression "uVar12 + 3" identifier + number_literal)) ;) (expression_statement "__ptr[0x24] = uVar8;" (assignment_expression "__ptr[0x24] = uVar8" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);" (assignment_expression "bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a)" identifier = (pointer_expression "*(byte *)((int)__ptr + uVar12 + 0x9a)" * (cast_expression "(byte *)((int)__ptr + uVar12 + 0x9a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x9a)" ( (binary_expression "(int)__ptr + uVar12 + 0x9a" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (0x27 < bVar19) break;" if (parenthesized_expression "(0x27 < bVar19)" ( (binary_expression "0x27 < bVar19" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = __ptr[0x126];" (assignment_expression "uVar12 = __ptr[0x126]" identifier = (subscript_expression "__ptr[0x126]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);" (assignment_expression "uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f)" identifier = (binary_expression "(bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f)" (binary_expression "(bVar19 & 1) + 2" (parenthesized_expression "(bVar19 & 1)" ( (binary_expression "bVar19 & 1" identifier & number_literal) )) + number_literal) << (parenthesized_expression "((bVar19 >> 1) + 0xb & 0x1f)" ( (binary_expression "(bVar19 >> 1) + 0xb & 0x1f" (binary_expression "(bVar19 >> 1) + 0xb" (parenthesized_expression "(bVar19 >> 1)" ( (binary_expression "bVar19 >> 1" identifier >> number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "*(uint *)(uVar12 + 0x30) = uVar10;" (assignment_expression "*(uint *)(uVar12 + 0x30) = uVar10" (pointer_expression "*(uint *)(uVar12 + 0x30)" * (cast_expression "(uint *)(uVar12 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x30)" ( (binary_expression "uVar12 + 0x30" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }" if (parenthesized_expression "(*(uint *)(uVar12 + 0x34) < uVar10)" ( (binary_expression "*(uint *)(uVar12 + 0x34) < uVar10" (pointer_expression "*(uint *)(uVar12 + 0x34)" * (cast_expression "(uint *)(uVar12 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x34)" ( (binary_expression "uVar12 + 0x34" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }" { (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x44)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = 4;" (assignment_expression "iVar9 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (expression_statement "*(uint *)(uVar12 + 0x2c) = uVar10;" (assignment_expression "*(uint *)(uVar12 + 0x2c) = uVar10" (pointer_expression "*(uint *)(uVar12 + 0x2c)" * (cast_expression "(uint *)(uVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x2c)" ( (binary_expression "uVar12 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }" if (parenthesized_expression "((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10))" ( (binary_expression "(*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)" (parenthesized_expression "(*(int *)(uVar12 + 0x3c) == 2)" ( (binary_expression "*(int *)(uVar12 + 0x3c) == 2" (pointer_expression "*(int *)(uVar12 + 0x3c)" * (cast_expression "(int *)(uVar12 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x3c)" ( (binary_expression "uVar12 + 0x3c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(uint *)(uVar12 + 0x38) < uVar10)" ( (binary_expression "*(uint *)(uVar12 + 0x38) < uVar10" (pointer_expression "*(uint *)(uVar12 + 0x38)" * (cast_expression "(uint *)(uVar12 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x38)" ( (binary_expression "uVar12 + 0x38" identifier + number_literal) )))) < identifier) ))) )) (compound_statement "{\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }" { (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(uVar12 + 0x18)" * (cast_expression "(undefined4 *)(uVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x18)" ( (binary_expression "uVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(uVar12 + 0x30)" * (cast_expression "(undefined4 *)(uVar12 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x30)" ( (binary_expression "uVar12 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));" (assignment_expression "pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10))" identifier = (call_expression "malloc(*(size_t *)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(size_t *)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(size_t *)((int)pppuVar15 + -0x10)" * (cast_expression "(size_t *)((int)pppuVar15 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "*(void **)(uVar12 + 0x18) = pvVar4;" (assignment_expression "*(void **)(uVar12 + 0x18) = pvVar4" (pointer_expression "*(void **)(uVar12 + 0x18)" * (cast_expression "(void **)(uVar12 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar12 + 0x18)" ( (binary_expression "uVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }" { (expression_statement "*(undefined4 *)(uVar12 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x38) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x38)" * (cast_expression "(undefined4 *)(uVar12 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x38)" ( (binary_expression "uVar12 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x44) == 0)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x44) == 0" (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00085820;" goto statement_identifier ;)) (expression_statement "iVar9 = 3;" (assignment_expression "iVar9 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = __ptr[0x24];" (assignment_expression "uVar8 = __ptr[0x24]" identifier = (subscript_expression "__ptr[0x24]" identifier [ number_literal ])) ;) })) (expression_statement "*(undefined4 *)(uVar12 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x68) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x68)" * (cast_expression "(undefined4 *)(uVar12 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x68)" ( (binary_expression "uVar12 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(uVar12 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x40) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x40)" * (cast_expression "(undefined4 *)(uVar12 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x40)" ( (binary_expression "uVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(uVar12 + 0x50) = 1;" (assignment_expression "*(undefined1 *)(uVar12 + 0x50) = 1" (pointer_expression "*(undefined1 *)(uVar12 + 0x50)" * (cast_expression "(undefined1 *)(uVar12 + 0x50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x50)" ( (binary_expression "uVar12 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(uVar12 + 0x6ee4) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x6ee4) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x6ee4)" * (cast_expression "(undefined4 *)(uVar12 + 0x6ee4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x6ee4)" ( (binary_expression "uVar12 + 0x6ee4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }" if (parenthesized_expression "(uVar8 < uVar5)" ( (binary_expression "uVar8 < uVar5" identifier < identifier) )) (compound_statement "{\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }" { (expression_statement "__ptr[0x24] = uVar8 + 1;" (assignment_expression "__ptr[0x24] = uVar8 + 1" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);" (assignment_expression "cVar3 = *(char *)((int)__ptr + uVar8 + 0x98)" identifier = (pointer_expression "*(char *)((int)__ptr + uVar8 + 0x98)" * (cast_expression "(char *)((int)__ptr + uVar8 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar8 + 0x98)" ( (binary_expression "(int)__ptr + uVar8 + 0x98" (binary_expression "(int)__ptr + uVar8" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "uVar12 = uVar8 + 1;" (assignment_expression "uVar12 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (while_statement "while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }" { (if_statement "if (cVar3 != '\0') goto LAB_00085fed;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085fed;" goto statement_identifier ;)) (if_statement "if (uVar12 == uVar5) break;" if (parenthesized_expression "(uVar12 == uVar5)" ( (binary_expression "uVar12 == uVar5" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "__ptr[0x24] = uVar12 + 1;" (assignment_expression "__ptr[0x24] = uVar12 + 1" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);" (assignment_expression "cVar3 = *(char *)((int)__ptr + uVar12 + 0x98)" identifier = (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x98)" * (cast_expression "(char *)((int)__ptr + uVar12 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x98)" ( (binary_expression "(int)__ptr + uVar12 + 0x98" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) })) })) (expression_statement "__ptr[0x24] = 0;" (assignment_expression "__ptr[0x24] = 0" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0xf] = 0;" (assignment_expression "__ptr[0xf] = 0" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x10] = 0;" (assignment_expression "__ptr[0x10] = 0" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x11] = 0;" (assignment_expression "__ptr[0x11] = 0" (subscript_expression "__ptr[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x12] = 0;" (assignment_expression "__ptr[0x12] = 0" (subscript_expression "__ptr[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*__ptr = 3;" (assignment_expression "*__ptr = 3" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];" statement_identifier : (expression_statement "__ptr[4] = ((int *)pppuVar15)[0xe];" (assignment_expression "__ptr[4] = ((int *)pppuVar15)[0xe]" (subscript_expression "__ptr[4]" identifier [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;)) (expression_statement "__ptr[5] = ((int *)pppuVar15)[0x11];" (assignment_expression "__ptr[5] = ((int *)pppuVar15)[0x11]" (subscript_expression "__ptr[5]" identifier [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "((int *)pppuVar15)[-1] = 0x85d70;" (assignment_expression "((int *)pppuVar15)[-1] = 0x85d70" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = FUN_00084c5e();" (assignment_expression "iVar9 = FUN_00084c5e()" identifier = (call_expression "FUN_00084c5e()" identifier (argument_list "()" ( )))) ;) (expression_statement "((int *)pppuVar15)[7] = iVar9;" (assignment_expression "((int *)pppuVar15)[7] = iVar9" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];" (assignment_expression "uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf]" identifier = (binary_expression "(((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf]" (parenthesized_expression "(((int *)pppuVar15)[0xe] - __ptr[4])" ( (binary_expression "((int *)pppuVar15)[0xe] - __ptr[4]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) - (subscript_expression "__ptr[4]" identifier [ number_literal ])) )) + (subscript_expression "__ptr[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);" (assignment_expression "uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" identifier = (binary_expression "__ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) + (cast_expression "(uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" identifier (argument_list "(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" ( (binary_expression "((int *)pppuVar15)[0xe] - __ptr[4]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) - (subscript_expression "__ptr[4]" identifier [ number_literal ])) , (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) )))))) ;) (expression_statement "__ptr[0xf] = uVar8;" (assignment_expression "__ptr[0xf] = uVar8" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x10] = uVar10;" (assignment_expression "__ptr[0x10] = uVar10" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = ((int *)pppuVar15)[0x11];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x11]" identifier = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = __ptr[5];" (assignment_expression "uVar5 = __ptr[5]" identifier = (subscript_expression "__ptr[5]" identifier [ number_literal ])) ;) (expression_statement "((int *)pppuVar15)[9] = uVar5;" (assignment_expression "((int *)pppuVar15)[9] = uVar5" (subscript_expression "((int *)pppuVar15)[9]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = iVar7 - uVar5;" (assignment_expression "uVar5 = iVar7 - uVar5" identifier = (binary_expression "iVar7 - uVar5" identifier - identifier)) ;) (expression_statement "((int *)pppuVar15)[10] = uVar5;" (assignment_expression "((int *)pppuVar15)[10] = uVar5" (subscript_expression "((int *)pppuVar15)[10]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = uVar5 + __ptr[0x11];" (assignment_expression "uVar12 = uVar5 + __ptr[0x11]" identifier = (binary_expression "uVar5 + __ptr[0x11]" identifier + (subscript_expression "__ptr[0x11]" identifier [ number_literal ]))) ;) (expression_statement "uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);" (assignment_expression "uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11])" identifier = (binary_expression "__ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11])" (subscript_expression "__ptr[0x12]" identifier [ number_literal ]) + (cast_expression "(uint)CARRY4(uVar5,__ptr[0x11])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,__ptr[0x11])" identifier (argument_list "(uVar5,__ptr[0x11])" ( identifier , (subscript_expression "__ptr[0x11]" identifier [ number_literal ]) )))))) ;) (expression_statement "__ptr[0x11] = uVar12;" (assignment_expression "__ptr[0x11] = uVar12" (subscript_expression "__ptr[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x12] = uVar5;" (assignment_expression "__ptr[0x12] = uVar5" (subscript_expression "__ptr[0x12]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }" if (parenthesized_expression "((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)))" ( (binary_expression "(__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))" (parenthesized_expression "(__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8))" ( (binary_expression "__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)" (binary_expression "__ptr[0xb] < uVar10" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) < identifier) || (binary_expression "__ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)" (binary_expression "__ptr[0xb] - uVar10" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)(__ptr[10] < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__ptr[10] < uVar8)" ( (binary_expression "__ptr[10] < uVar8" (subscript_expression "__ptr[10]" identifier [ number_literal ]) < identifier) ))))) )) || (parenthesized_expression "(__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))" ( (binary_expression "__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)" (binary_expression "__ptr[0xd] < uVar5" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) < identifier) || (binary_expression "__ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)" (binary_expression "__ptr[0xd] - uVar5" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)(__ptr[0xc] < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__ptr[0xc] < uVar12)" ( (binary_expression "__ptr[0xc] < uVar12" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) < identifier) ))))) ))) )) (compound_statement "{\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (if_statement "if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }" if (parenthesized_expression "(__ptr[7] == 1)" ( (binary_expression "__ptr[7] == 1" (subscript_expression "__ptr[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }" { (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" * (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" ( (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) ))))) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x85df3;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85df3" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr[6] = ~uVar5;" (assignment_expression "__ptr[6] = ~uVar5" (subscript_expression "__ptr[6]" identifier [ number_literal ]) = (unary_expression "~uVar5" ~ identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" identifier = (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int *)pppuVar15 + -1)" ( (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) })) (if_statement "if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }" if (parenthesized_expression "(((int *)pppuVar15)[7] != 1)" ( (binary_expression "((int *)pppuVar15)[7] != 1" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) != number_literal) )) (compound_statement "{\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }" { (expression_statement "iVar9 = ((int *)pppuVar15)[7];" (assignment_expression "iVar9 = ((int *)pppuVar15)[7]" identifier = (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (goto_statement "goto LAB_00085af4;" goto statement_identifier ;) })) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;" if (parenthesized_expression "(((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf]))" ( (binary_expression "((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])" (parenthesized_expression "((__ptr[0xb] & __ptr[10]) != 0xffffffff)" ( (binary_expression "(__ptr[0xb] & __ptr[10]) != 0xffffffff" (parenthesized_expression "(__ptr[0xb] & __ptr[10])" ( (binary_expression "__ptr[0xb] & __ptr[10]" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) & (subscript_expression "__ptr[10]" identifier [ number_literal ])) )) != number_literal) )) && (parenthesized_expression "(__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])" ( (binary_expression "__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf]" (binary_expression "__ptr[0xb] != __ptr[0x10]" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) != (subscript_expression "__ptr[0x10]" identifier [ number_literal ])) || (binary_expression "__ptr[10] != __ptr[0xf]" (subscript_expression "__ptr[10]" identifier [ number_literal ]) != (subscript_expression "__ptr[0xf]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar5 = __ptr[0x11];" (assignment_expression "uVar5 = __ptr[0x11]" identifier = (subscript_expression "__ptr[0x11]" identifier [ number_literal ])) ;) (if_statement "if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;" if (parenthesized_expression "(((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5))" ( (binary_expression "((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)" (parenthesized_expression "((__ptr[0xd] & __ptr[0xc]) != 0xffffffff)" ( (binary_expression "(__ptr[0xd] & __ptr[0xc]) != 0xffffffff" (parenthesized_expression "(__ptr[0xd] & __ptr[0xc])" ( (binary_expression "__ptr[0xd] & __ptr[0xc]" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) & (subscript_expression "__ptr[0xc]" identifier [ number_literal ])) )) != number_literal) )) && (parenthesized_expression "(__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)" ( (binary_expression "__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5" (binary_expression "__ptr[0xd] != __ptr[0x12]" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) != (subscript_expression "__ptr[0x12]" identifier [ number_literal ])) || (binary_expression "__ptr[0xc] != uVar5" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) != identifier)) ))) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar12 = __ptr[0x15];" (assignment_expression "uVar12 = __ptr[0x15]" identifier = (subscript_expression "__ptr[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = __ptr[0xf] + __ptr[0x15];" (assignment_expression "uVar10 = __ptr[0xf] + __ptr[0x15]" identifier = (binary_expression "__ptr[0xf] + __ptr[0x15]" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) + (subscript_expression "__ptr[0x15]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = __ptr[0xe] + uVar10;" (assignment_expression "uVar8 = __ptr[0xe] + uVar10" identifier = (binary_expression "__ptr[0xe] + uVar10" (subscript_expression "__ptr[0xe]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);" (assignment_expression "bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" identifier = (pointer_expression "*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" * (cast_expression "(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (binary_expression "(int)*pppuVar15 + -0x15628 + __ptr[7]" (binary_expression "(int)*pppuVar15 + -0x15628" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) + (subscript_expression "__ptr[7]" identifier [ number_literal ])) ))))) ;) (expression_statement "__ptr[0x15] = uVar8 + bVar19;" (assignment_expression "__ptr[0x15] = uVar8 + bVar19" (subscript_expression "__ptr[0x15]" identifier [ number_literal ]) = (binary_expression "uVar8 + bVar19" identifier + identifier)) ;) (expression_statement "__ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);" (assignment_expression "__ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19)" (subscript_expression "__ptr[0x16]" identifier [ number_literal ]) = (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19)" (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10)" (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12)" (binary_expression "__ptr[0x10] + __ptr[0x16]" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) + (subscript_expression "__ptr[0x16]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(__ptr[0xf],uVar12)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(__ptr[0xf],uVar12)" identifier (argument_list "(__ptr[0xf],uVar12)" ( (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) , identifier ))))) + (cast_expression "(uint)CARRY4(__ptr[0xe],uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(__ptr[0xe],uVar10)" identifier (argument_list "(__ptr[0xe],uVar10)" ( (subscript_expression "__ptr[0xe]" identifier [ number_literal ]) , identifier ))))) + (cast_expression "(uint)CARRY4(uVar8,(uint)bVar19)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar8,(uint)bVar19)" identifier (argument_list "(uVar8,(uint)bVar19)" ( identifier , (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "puVar1 = __ptr + 0x17;" (assignment_expression "puVar1 = __ptr + 0x17" identifier = (binary_expression "__ptr + 0x17" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar1;" (assignment_expression "uVar12 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar5;" (assignment_expression "*puVar1 = *puVar1 + uVar5" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar5" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "__ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);" (assignment_expression "__ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5)" (subscript_expression "__ptr[0x18]" identifier [ number_literal ]) = (binary_expression "__ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5)" (binary_expression "__ptr[0x18] + __ptr[0x12]" (subscript_expression "__ptr[0x18]" identifier [ number_literal ]) + (subscript_expression "__ptr[0x12]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar12,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar5)" identifier (argument_list "(uVar12,uVar5)" ( identifier , identifier )))))) ;) (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" * (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" ( (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) ))))) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x85e83;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85e83" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr[0x19] = ~uVar5;" (assignment_expression "__ptr[0x19] = ~uVar5" (subscript_expression "__ptr[0x19]" identifier [ number_literal ]) = (unary_expression "~uVar5" ~ identifier)) ;) (expression_statement "puVar1 = __ptr + 0x13;" (assignment_expression "puVar1 = __ptr + 0x13" identifier = (binary_expression "__ptr + 0x13" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + 1;" (assignment_expression "*puVar1 = *puVar1 + 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + 1" (pointer_expression "*puVar1" * identifier) + number_literal)) ;) (expression_statement "__ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);" (assignment_expression "__ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5)" (subscript_expression "__ptr[0x14]" identifier [ number_literal ]) = (binary_expression "__ptr[0x14] + (uint)(0xfffffffe < uVar5)" (subscript_expression "__ptr[0x14]" identifier [ number_literal ]) + (call_expression "(uint)(0xfffffffe < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar5)" ( (binary_expression "0xfffffffe < uVar5" number_literal < identifier) ))))) ;) (expression_statement "*__ptr = 4;" (assignment_expression "*__ptr = 4" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" identifier = (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int *)pppuVar15 + -1)" ( (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (labeled_statement "switchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];" statement_identifier : (expression_statement "uVar12 = __ptr[0xf];" (assignment_expression "uVar12 = __ptr[0xf]" identifier = (subscript_expression "__ptr[0xf]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = __ptr[0x10];" (assignment_expression "uVar8 = __ptr[0x10]" identifier = (subscript_expression "__ptr[0x10]" identifier [ number_literal ])) ;) (if_statement "if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }" if (parenthesized_expression "((uVar12 & 3) != 0)" ( (binary_expression "(uVar12 & 3) != 0" (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }" { (expression_statement "uVar10 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar10 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x3c);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x3c)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x3c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x3c)" ( (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar10 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar10 == uVar5)" ( (binary_expression "uVar10 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x34);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x34)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" * (cast_expression "(int *)((int)pppuVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x34)" ( (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar11 = uVar10 + 1;" (assignment_expression "uVar11 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar11;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar11" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;" if (parenthesized_expression "(*(char *)(iVar9 + uVar10) != '\0')" ( (binary_expression "*(char *)(iVar9 + uVar10) != '\0'" (pointer_expression "*(char *)(iVar9 + uVar10)" * (cast_expression "(char *)(iVar9 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar10)" ( (binary_expression "iVar9 + uVar10" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar8 + (0xfffffffe < uVar12);" (assignment_expression "uVar8 = uVar8 + (0xfffffffe < uVar12)" identifier = (binary_expression "uVar8 + (0xfffffffe < uVar12)" identifier + (parenthesized_expression "(0xfffffffe < uVar12)" ( (binary_expression "0xfffffffe < uVar12" number_literal < identifier) )))) ;) (while_statement "while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }" { (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "__ptr[0xf] = uVar12;" (assignment_expression "__ptr[0xf] = uVar12" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x10] = uVar8;" (assignment_expression "__ptr[0x10] = uVar8" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar12 & 3) == 0) break;" if (parenthesized_expression "((uVar12 & 3) == 0)" ( (binary_expression "(uVar12 & 3) == 0" (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar11 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar11 == uVar5)" ( (binary_expression "uVar11 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar11;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar11" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = uVar8 + (0xfffffffe < uVar12);" (assignment_expression "uVar8 = uVar8 + (0xfffffffe < uVar12)" identifier = (binary_expression "uVar8 + (0xfffffffe < uVar12)" identifier + (parenthesized_expression "(0xfffffffe < uVar12)" ( (binary_expression "0xfffffffe < uVar12" number_literal < identifier) )))) ;) (if_statement "if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;" if (parenthesized_expression "(*(char *)(iVar9 + -1 + uVar11) != '\0')" ( (binary_expression "*(char *)(iVar9 + -1 + uVar11) != '\0'" (pointer_expression "*(char *)(iVar9 + -1 + uVar11)" * (cast_expression "(char *)(iVar9 + -1 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + uVar11)" ( (binary_expression "iVar9 + -1 + uVar11" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) })) })) (expression_statement "*__ptr = 5;" (assignment_expression "*__ptr = 5" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" statement_identifier : (if_statement "if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" if (parenthesized_expression "(__ptr[7] == 1)" ( (binary_expression "__ptr[7] == 1" (subscript_expression "__ptr[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }" { (expression_statement "uVar12 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar12 = ((int *)pppuVar15)[0xf]" identifier = (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "iVar9 = ((int *)pppuVar15)[0xd];" (assignment_expression "iVar9 = ((int *)pppuVar15)[0xd]" identifier = (subscript_expression "((int *)pppuVar15)[0xd]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = ((int *)pppuVar15)[0xe];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xe]" identifier = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (if_statement "if (uVar12 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar12 == uVar5)" ( (binary_expression "uVar12 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar10 = __ptr[6];" (assignment_expression "uVar10 = __ptr[6]" identifier = (subscript_expression "__ptr[6]" identifier [ number_literal ])) ;) (expression_statement "((int *)pppuVar15)[7] = uVar10;" (assignment_expression "((int *)pppuVar15)[7] = uVar10" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = __ptr[1];" (assignment_expression "uVar11 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar5 + 1;" (assignment_expression "uVar8 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "((int *)pppuVar15)[0xe] = uVar8;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar8" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;" if (parenthesized_expression "(*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f))" (pointer_expression "*(char *)(iVar9 + uVar5)" * (cast_expression "(char *)(iVar9 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar5)" ( (binary_expression "iVar9 + uVar5" identifier + identifier) )))) != (cast_expression "(char)(uVar10 >> ((byte)uVar11 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar10 >> ((byte)uVar11 & 0x1f))" ( (binary_expression "uVar10 >> ((byte)uVar11 & 0x1f)" identifier >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar11 + 8;" (assignment_expression "uVar11 = uVar11 + 8" identifier = (binary_expression "uVar11 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar11;" (assignment_expression "__ptr[1] = uVar11" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) (while_statement "while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }" while (parenthesized_expression "(uVar11 < 0x20)" ( (binary_expression "uVar11 < 0x20" identifier < number_literal) )) (compound_statement "{\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }" { (expression_statement "uVar5 = uVar12;" (assignment_expression "uVar5 = uVar12" identifier = identifier) ;) (if_statement "if (uVar12 == uVar8) goto LAB_000858bd;" if (parenthesized_expression "(uVar12 == uVar8)" ( (binary_expression "uVar12 == uVar8" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar11 = __ptr[1];" (assignment_expression "uVar11 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "((int *)pppuVar15)[0xe] = uVar8;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar8" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;" if (parenthesized_expression "(*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" (pointer_expression "*(char *)(iVar9 + -1 + uVar8)" * (cast_expression "(char *)(iVar9 + -1 + uVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + uVar8)" ( (binary_expression "iVar9 + -1 + uVar8" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) )))) != (cast_expression "(char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" ( (binary_expression "(uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f)" (subscript_expression "(uint)((int *)pppuVar15)[7]" (call_expression "(uint)((int *)pppuVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ]) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar11 + 8;" (assignment_expression "uVar11 = uVar11 + 8" identifier = (binary_expression "uVar11 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar11;" (assignment_expression "__ptr[1] = uVar11" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "__ptr[6] = 0;" (assignment_expression "__ptr[6] = 0" (subscript_expression "__ptr[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" else (compound_statement "{\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" { (expression_statement "uVar12 = __ptr[1];" (assignment_expression "uVar12 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);" (assignment_expression "uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" identifier = (binary_expression "(uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (binary_expression "(int)*pppuVar15 + -0x15628 + __ptr[7]" (binary_expression "(int)*pppuVar15 + -0x15628" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) + (subscript_expression "__ptr[7]" identifier [ number_literal ])) ))))) ;) (if_statement "if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }" if (parenthesized_expression "(uVar12 < uVar8)" ( (binary_expression "uVar12 < uVar8" identifier < identifier) )) (compound_statement "{\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }" { (expression_statement "uVar10 = ((int *)pppuVar15)[0xe];" (assignment_expression "uVar10 = ((int *)pppuVar15)[0xe]" identifier = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xf]" identifier = (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (if_statement "if (uVar10 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar10 == uVar5)" ( (binary_expression "uVar10 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (while_statement "while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }" { (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (if_statement "if (uVar11 == (uVar10 - uVar12) + uVar8) break;" if (parenthesized_expression "(uVar11 == (uVar10 - uVar12) + uVar8)" ( (binary_expression "uVar11 == (uVar10 - uVar12) + uVar8" identifier == (binary_expression "(uVar10 - uVar12) + uVar8" (parenthesized_expression "(uVar10 - uVar12)" ( (binary_expression "uVar10 - uVar12" identifier - identifier) )) + identifier)) )) (break_statement "break;" break ;)) (if_statement "if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }" if (parenthesized_expression "(uVar11 == uVar5)" ( (binary_expression "uVar11 == uVar5" identifier == identifier) )) (compound_statement "{\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }" { (expression_statement "((int *)pppuVar15)[0xe] = uVar5;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar5" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "__ptr[1] = (uVar11 - uVar10) + uVar12;" (assignment_expression "__ptr[1] = (uVar11 - uVar10) + uVar12" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = (binary_expression "(uVar11 - uVar10) + uVar12" (parenthesized_expression "(uVar11 - uVar10)" ( (binary_expression "uVar11 - uVar10" identifier - identifier) )) + identifier)) ;) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;) })) })) (expression_statement "((int *)pppuVar15)[0xe] = uVar11;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar11" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) })) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = number_literal) ;) })))) (expression_statement "*__ptr = 1;" (assignment_expression "*__ptr = 1" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000856cf;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x85d53:\n      goto switchD_000856db_caseD_85d53;" case number_literal : (goto_statement "goto switchD_000856db_caseD_85d53;" goto statement_identifier ;)) (case_statement "case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;" case number_literal : (goto_statement "goto switchD_000856db_caseD_85e9a;" goto statement_identifier ;)) (case_statement "case 0x85eea:\n      goto switchD_000856db_caseD_85eea;" case number_literal : (goto_statement "goto switchD_000856db_caseD_85eea;" goto statement_identifier ;)) })) (labeled_statement "LAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);" statement_identifier : (expression_statement "iVar7 = *(int *)((int)piVar16 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)piVar16 + 0x44)" identifier = (pointer_expression "*(int *)((int)piVar16 + 0x44)" * (cast_expression "(int *)((int)piVar16 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x44)" ( (binary_expression "(int)piVar16 + 0x44" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" identifier = (cast_expression "(undefined ***)piVar16" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (expression_statement "((int *)pppuVar15)[-1] = 0x855cf;" (assignment_expression "((int *)pppuVar15)[-1] = 0x855cf" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_0001b3fd();" (assignment_expression "uVar5 = FUN_0001b3fd()" identifier = (call_expression "FUN_0001b3fd()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }" { (expression_statement "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;" (assignment_expression "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (binary_expression "(int)*pppuVar15 + -0x515c" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal)) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x855ea;" (assignment_expression "((int *)pppuVar15)[-5] = 0x855ea" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0001930a();" (call_expression "FUN_0001930a()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)pppuVar15)[4] = -1;" (assignment_expression "((int *)pppuVar15)[4] = -1" (subscript_expression "((int *)pppuVar15)[4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "((int *)pppuVar15)[5] = -1;" (assignment_expression "((int *)pppuVar15)[5] = -1" (subscript_expression "((int *)pppuVar15)[5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) }) (else_clause "else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" else (if_statement "if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" if (parenthesized_expression "((uVar5 != 0) || (iVar9 != 1))" ( (binary_expression "(uVar5 != 0) || (iVar9 != 1)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) ))) )) (compound_statement "{\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" { (expression_statement "((int *)pppuVar15)[0xf] = uVar5;" (assignment_expression "((int *)pppuVar15)[0xf] = uVar5" (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "((int *)pppuVar15)[0xe] = 0;" (assignment_expression "((int *)pppuVar15)[0xe] = 0" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "((int *)pppuVar15)[1] = 0;" (assignment_expression "((int *)pppuVar15)[1] = 0" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00085687;" goto statement_identifier ;) })))) (if_statement "if (__ptr == (uint *)0x0) goto LAB_0008562b;" if (parenthesized_expression "(__ptr == (uint *)0x0)" ( (binary_expression "__ptr == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008562b;" goto statement_identifier ;)) (goto_statement "goto LAB_00085601;" goto statement_identifier ;) (labeled_statement "switchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;" statement_identifier : (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (do_statement "do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);" do (compound_statement "{\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  }" { (expression_statement "*(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c)" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x10)" ( (binary_expression "(int)piVar13 + -0x10" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)piVar13 + 0x3c)" * (cast_expression "(undefined4 *)((int)piVar13 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x3c)" ( (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x14) = 0x8573a" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x14)" ( (binary_expression "(int)piVar13 + -0x14" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" identifier = (call_expression "FUN_00084b26()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }" if (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) (compound_statement "{\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }" { (expression_statement "*(undefined4 *)((int)piVar13 + -8) = 0x85af4;" (assignment_expression "*(undefined4 *)((int)piVar13 + -8) = 0x85af4" (pointer_expression "*(undefined4 *)((int)piVar13 + -8)" * (cast_expression "(undefined4 *)((int)piVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -8)" ( (binary_expression "(int)piVar13 + -8" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00084c19();" (call_expression "FUN_00084c19()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;" statement_identifier : (if_statement "if (iVar9 == 0) goto LAB_000858b9;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000858b9;" goto statement_identifier ;))) (goto_statement "goto LAB_00085807;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[0x1a];" (assignment_expression "uVar5 = __ptr[0x1a]" identifier = (subscript_expression "__ptr[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }" { (expression_statement "puVar1 = __ptr + 0x1f;" (assignment_expression "puVar1 = __ptr + 0x1f" identifier = (binary_expression "__ptr + 0x1f" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + __ptr[2];" (assignment_expression "*puVar1 = *puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) + (subscript_expression "__ptr[2]" identifier [ number_literal ]))) ;) (expression_statement "__ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);" (assignment_expression "__ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (subscript_expression "__ptr[0x20]" identifier [ number_literal ]) = (binary_expression "__ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (binary_expression "__ptr[0x20] + __ptr[3]" (subscript_expression "__ptr[0x20]" identifier [ number_literal ]) + (subscript_expression "__ptr[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar5,__ptr[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,__ptr[2])" identifier (argument_list "(uVar5,__ptr[2])" ( identifier , (subscript_expression "__ptr[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "__ptr[0x1a] = 2;" (assignment_expression "__ptr[0x1a] = 2" (subscript_expression "__ptr[0x1a]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00085768:\n      uVar5 = __ptr[0x1d];" statement_identifier : (expression_statement "uVar5 = __ptr[0x1d];" (assignment_expression "uVar5 = __ptr[0x1d]" identifier = (subscript_expression "__ptr[0x1d]" identifier [ number_literal ])) ;)) (expression_statement "uVar12 = __ptr[0x1e];" (assignment_expression "uVar12 = __ptr[0x1e]" identifier = (subscript_expression "__ptr[0x1e]" identifier [ number_literal ])) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" else (compound_statement "{\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" { (if_statement "if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }" { (if_statement "if (uVar5 != 2) goto LAB_00085768;" if (parenthesized_expression "(uVar5 != 2)" ( (binary_expression "uVar5 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00085768;" goto statement_identifier ;)) (expression_statement "puVar1 = __ptr + 0x21;" (assignment_expression "puVar1 = __ptr + 0x21" identifier = (binary_expression "__ptr + 0x21" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + __ptr[2];" (assignment_expression "*puVar1 = *puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) + (subscript_expression "__ptr[2]" identifier [ number_literal ]))) ;) (expression_statement "__ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);" (assignment_expression "__ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (subscript_expression "__ptr[0x22]" identifier [ number_literal ]) = (binary_expression "__ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (binary_expression "__ptr[0x22] + __ptr[3]" (subscript_expression "__ptr[0x22]" identifier [ number_literal ]) + (subscript_expression "__ptr[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar5,__ptr[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,__ptr[2])" identifier (argument_list "(uVar5,__ptr[2])" ( identifier , (subscript_expression "__ptr[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "*(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x14)" ( (binary_expression "(int)piVar13 + -0x14" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" * (cast_expression "(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar13 + -4) + 0xcf8)" ( (binary_expression "*(int *)((int)piVar13 + -4) + 0xcf8" (pointer_expression "*(int *)((int)piVar13 + -4)" * (cast_expression "(int *)((int)piVar13 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x18) = 0x85a94" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x18)" ( (binary_expression "(int)piVar13 + -0x18" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr[0x23] = ~uVar5;" (assignment_expression "__ptr[0x23] = ~uVar5" (subscript_expression "__ptr[0x23]" identifier [ number_literal ]) = (unary_expression "~uVar5" ~ identifier)) ;) (expression_statement "uVar5 = __ptr[0x1d] - 1;" (assignment_expression "uVar5 = __ptr[0x1d] - 1" identifier = (binary_expression "__ptr[0x1d] - 1" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);" (assignment_expression "uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0)" identifier = (binary_expression "(__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0)" (parenthesized_expression "(__ptr[0x1e] - 1)" ( (binary_expression "__ptr[0x1e] - 1" (subscript_expression "__ptr[0x1e]" identifier [ number_literal ]) - number_literal) )) + (call_expression "(uint)(__ptr[0x1d] != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__ptr[0x1d] != 0)" ( (binary_expression "__ptr[0x1d] != 0" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) != number_literal) ))))) ;) (expression_statement "__ptr[0x1d] = uVar5;" (assignment_expression "__ptr[0x1d] = uVar5" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x1e] = uVar12;" (assignment_expression "__ptr[0x1e] = uVar12" (subscript_expression "__ptr[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x1a] = 1;" (assignment_expression "__ptr[0x1a] = 1" (subscript_expression "__ptr[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -8);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -8)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -8)" ( (binary_expression "(int)piVar13 + -8" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_0008576e;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[2];" (assignment_expression "uVar5 = __ptr[2]" identifier = (subscript_expression "__ptr[2]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = __ptr[3];" (assignment_expression "uVar12 = __ptr[3]" identifier = (subscript_expression "__ptr[3]" identifier [ number_literal ])) ;) (expression_statement "__ptr[0x1d] = uVar5;" (assignment_expression "__ptr[0x1d] = uVar5" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x1e] = uVar12;" (assignment_expression "__ptr[0x1e] = uVar12" (subscript_expression "__ptr[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + -4);" (assignment_expression "piVar13 = (int *)((int)piVar13 + -4)" identifier = (cast_expression "(int *)((int)piVar13 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;" if (parenthesized_expression "(__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5)" ( (binary_expression "__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5" (binary_expression "__ptr[0x14] != uVar12" (subscript_expression "__ptr[0x14]" identifier [ number_literal ]) != identifier) || (binary_expression "__ptr[0x13] != uVar5" (subscript_expression "__ptr[0x13]" identifier [ number_literal ]) != identifier)) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "__ptr[0x1a] = 1;" (assignment_expression "__ptr[0x1a] = 1" (subscript_expression "__ptr[0x1a]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0008576e:\n    piVar13 = (int *)pppuVar15;" statement_identifier : (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) }) while (parenthesized_expression "(uVar12 != 0 || uVar5 != 0)" ( (binary_expression "uVar12 != 0 || uVar5 != 0" (binary_expression "uVar12 != 0" identifier != number_literal) || (binary_expression "uVar5 != 0" identifier != number_literal)) )) ;) (expression_statement "*__ptr = 7;" (assignment_expression "*__ptr = 7" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];" statement_identifier : (expression_statement "uVar5 = __ptr[0x1b];" (assignment_expression "uVar5 = __ptr[0x1b]" identifier = (subscript_expression "__ptr[0x1b]" identifier [ number_literal ])) ;)) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1" identifier = (binary_expression "*(int *)((int)pppuVar15 + 0x38) + 1" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" * (cast_expression "(int *)((int)pppuVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "uVar12 = __ptr[4];" (assignment_expression "uVar12 = __ptr[4]" identifier = (subscript_expression "__ptr[4]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" statement_identifier : (if_statement "if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" if (parenthesized_expression "((~uVar12 + iVar9 + uVar5 & 3) == 0)" ( (binary_expression "(~uVar12 + iVar9 + uVar5 & 3) == 0" (parenthesized_expression "(~uVar12 + iVar9 + uVar5 & 3)" ( (binary_expression "~uVar12 + iVar9 + uVar5 & 3" (binary_expression "~uVar12 + iVar9 + uVar5" (binary_expression "~uVar12 + iVar9" (unary_expression "~uVar12" ~ identifier) + identifier) + identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }" { (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x857ae" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = FUN_00084c19();" (assignment_expression "uVar6 = FUN_00084c19()" identifier = (call_expression "FUN_00084c19()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = uVar6;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = uVar6" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -8) = 0x14;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -8) = 0x14" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;" (assignment_expression "*(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f" (pointer_expression "*(uint **)((int)pppuVar15 + -0xc)" * (cast_expression "(uint **)((int)pppuVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "__ptr + 0x1f" identifier + number_literal)) ;) (expression_statement "*(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;" (assignment_expression "*(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15" (pointer_expression "*(uint **)((int)pppuVar15 + -0x10)" * (cast_expression "(uint **)((int)pppuVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "__ptr + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00016390();" (assignment_expression "iVar9 = FUN_00016390()" identifier = (call_expression "FUN_00016390()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar9 != 0) goto LAB_000858fc;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000858fc;" goto statement_identifier ;)) (expression_statement "*__ptr = 8;" (assignment_expression "*__ptr = 8" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);" statement_identifier : (expression_statement "uVar12 = *(uint *)((int)pppuVar15 + 0x3c);" (assignment_expression "uVar12 = *(uint *)((int)pppuVar15 + 0x3c)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x3c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x3c)" ( (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x34);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x34)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" * (cast_expression "(int *)((int)pppuVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x34)" ( (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }" if (parenthesized_expression "(uVar12 != uVar5)" ( (binary_expression "uVar12 != uVar5" identifier != identifier) )) (compound_statement "{\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }" { (expression_statement "uVar8 = __ptr[6];" (assignment_expression "uVar8 = __ptr[6]" identifier = (subscript_expression "__ptr[6]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = __ptr[1];" (assignment_expression "uVar10 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1" (pointer_expression "*(uint *)((int)pppuVar15 + 0x24)" * (cast_expression "(uint *)((int)pppuVar15 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x24)" ( (binary_expression "(int)pppuVar15 + 0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }" if (parenthesized_expression "(*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))" (pointer_expression "*(char *)(iVar9 + uVar5)" * (cast_expression "(char *)(iVar9 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar5)" ( (binary_expression "iVar9 + uVar5" identifier + identifier) )))) != (cast_expression "(char)(uVar8 >> ((byte)uVar10 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar8 >> ((byte)uVar10 & 0x1f))" ( (binary_expression "uVar8 >> ((byte)uVar10 & 0x1f)" identifier >> (parenthesized_expression "((byte)uVar10 & 0x1f)" ( (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (compound_statement "{\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }" { (labeled_statement "LAB_00085802:\n        iVar9 = 7;" statement_identifier : (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;)) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (labeled_statement "LAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x44)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto joined_r0x00085811;" goto statement_identifier ;) })) (expression_statement "uVar10 = uVar10 + 8;" (assignment_expression "uVar10 = uVar10 + 8" identifier = (binary_expression "uVar10 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar10;" (assignment_expression "__ptr[1] = uVar10" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }" if (parenthesized_expression "(uVar10 < 0x20)" ( (binary_expression "uVar10 < 0x20" identifier < number_literal) )) (compound_statement "{\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }" { (expression_statement "*(uint *)((int)pppuVar15 + 0x1c) = uVar12;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x1c) = uVar12" (pointer_expression "*(uint *)((int)pppuVar15 + 0x1c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x1c)" ( (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x24);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x24)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x24)" * (cast_expression "(int *)((int)pppuVar15 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x24)" ( (binary_expression "(int)pppuVar15 + 0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);" do (compound_statement "{\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        }" { (if_statement "if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x1c) == iVar7)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x1c) == iVar7" (pointer_expression "*(int *)((int)pppuVar15 + 0x1c)" * (cast_expression "(int *)((int)pppuVar15 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x1c)" ( (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }" { (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x1c);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x1c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x1c)" ( (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[1];" (assignment_expression "uVar5 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)((int)pppuVar15 + 0x38) = iVar7;" (assignment_expression "*(int *)((int)pppuVar15 + 0x38) = iVar7" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" * (cast_expression "(int *)((int)pppuVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;" if (parenthesized_expression "(*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f))" (pointer_expression "*(char *)(iVar9 + -1 + iVar7)" * (cast_expression "(char *)(iVar9 + -1 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + iVar7)" ( (binary_expression "iVar9 + -1 + iVar7" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) )))) != (cast_expression "(char)(uVar8 >> ((byte)uVar5 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar8 >> ((byte)uVar5 & 0x1f))" ( (binary_expression "uVar8 >> ((byte)uVar5 & 0x1f)" identifier >> (parenthesized_expression "((byte)uVar5 & 0x1f)" ( (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "uVar5 = uVar5 + 8;" (assignment_expression "uVar5 = uVar5 + 8" identifier = (binary_expression "uVar5 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar5;" (assignment_expression "__ptr[1] = uVar5" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(uVar5 < 0x20)" ( (binary_expression "uVar5 < 0x20" identifier < number_literal) )) ;) })) (expression_statement "__ptr[6] = 0;" (assignment_expression "__ptr[6] = 0" (subscript_expression "__ptr[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x25] = 0xc;" (assignment_expression "__ptr[0x25] = 0xc" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*__ptr = 9;" (assignment_expression "*__ptr = 9" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;" statement_identifier : (expression_statement "piVar13[-1] = 0x858b5;" (assignment_expression "piVar13[-1] = 0x858b5" (subscript_expression "piVar13[-1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" identifier = (call_expression "FUN_0008543e()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }" { (labeled_statement "LAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);" statement_identifier : (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;) })) (expression_statement "piVar16 = piVar13;" (assignment_expression "piVar16 = piVar13" identifier = identifier) ;) (if_statement "if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }" if (parenthesized_expression "(*(short *)((int)__ptr + 0xa2) == 0x5a59)" ( (binary_expression "*(short *)((int)__ptr + 0xa2) == 0x5a59" (pointer_expression "*(short *)((int)__ptr + 0xa2)" * (cast_expression "(short *)((int)__ptr + 0xa2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0xa2)" ( (binary_expression "(int)__ptr + 0xa2" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }" { (expression_statement "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);" (assignment_expression "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8)" (subscript_expression "piVar13[-4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(*piVar13 + 0xcf8)" * (cast_expression "(undefined4 *)(*piVar13 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar13 + 0xcf8)" ( (binary_expression "*piVar13 + 0xcf8" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) ;) (expression_statement "piVar13[-5] = 0x85938;" (assignment_expression "piVar13[-5] = 0x85938" (subscript_expression "piVar13[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar14 = piVar13 + -1;" (assignment_expression "piVar14 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (if_statement "if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;" if (parenthesized_expression "(~uVar5 != __ptr[0x26])" ( (binary_expression "~uVar5 != __ptr[0x26]" (unary_expression "~uVar5" ~ identifier) != (subscript_expression "__ptr[0x26]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000858fc;" goto statement_identifier ;)) (expression_statement "iVar9 = piVar13[0x10];" (assignment_expression "iVar9 = piVar13[0x10]" identifier = (subscript_expression "piVar13[0x10]" identifier [ number_literal ])) ;) (if_statement "if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }" if (parenthesized_expression "(((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7]))" ( (binary_expression "((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])" (parenthesized_expression "((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0'))" ( (binary_expression "(__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')" (parenthesized_expression "(__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e))" ( (binary_expression "__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" (binary_expression "__ptr[0x1c] >> 2 != 0" (binary_expression "__ptr[0x1c] >> 2" (subscript_expression "__ptr[0x1c]" identifier [ number_literal ]) >> number_literal) != number_literal) || (binary_expression "__ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" (subscript_expression "__ptr[0x27]" identifier [ number_literal ]) != (parenthesized_expression "(__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" ( (binary_expression "__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e" (binary_expression "__ptr[0x1b] >> 2" (subscript_expression "__ptr[0x1b]" identifier [ number_literal ]) >> number_literal) | (binary_expression "__ptr[0x1c] << 0x1e" (subscript_expression "__ptr[0x1c]" identifier [ number_literal ]) << number_literal)) )))) )) || (parenthesized_expression "((char)__ptr[0x28] != '\0')" ( (binary_expression "(char)__ptr[0x28] != '\0'" (cast_expression "(char)__ptr[0x28]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "__ptr[0x28]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])" ( (binary_expression "(uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7]" (binary_expression "(uint)*(byte *)((int)__ptr + 0xa1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)__ptr + 0xa1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0xa1)" ( (binary_expression "(int)__ptr + 0xa1" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (subscript_expression "__ptr[7]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }" { (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (goto_statement "goto LAB_00085820;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (goto_statement "goto LAB_000859c3;" goto statement_identifier ;) })) (labeled_statement "LAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;" statement_identifier : (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" identifier = (cast_expression "(undefined ***)piVar16" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;)) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x44) == 0)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x44) == 0" (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00085820;" goto statement_identifier ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" else (compound_statement "{\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" { (if_statement "if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9" (binary_expression "*(int *)((int)pppuVar15 + 0x3c) + 1" (pointer_expression "*(int *)((int)pppuVar15 + 0x3c)" * (cast_expression "(int *)((int)pppuVar15 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x3c)" ( (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) != identifier) )) (goto_statement "goto LAB_00085a24;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00084c19();" (call_expression "FUN_00084c19()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })))) (labeled_statement "LAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);" statement_identifier : (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x44)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }" if (parenthesized_expression "((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9))" ( (binary_expression "(uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)" (parenthesized_expression "(uVar5 == *(uint *)((int)pppuVar15 + 4))" ( (binary_expression "uVar5 == *(uint *)((int)pppuVar15 + 4)" identifier == (pointer_expression "*(uint *)((int)pppuVar15 + 4)" * (cast_expression "(uint *)((int)pppuVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 4)" ( (binary_expression "(int)pppuVar15 + 4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x20) == iVar9)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x20) == iVar9" (pointer_expression "*(int *)((int)pppuVar15 + 0x20)" * (cast_expression "(int *)((int)pppuVar15 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x20)" ( (binary_expression "(int)pppuVar15 + 0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }" { (if_statement "if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }" if (parenthesized_expression "((char)__ptr[9] == '\0')" ( (binary_expression "(char)__ptr[9] == '\0'" (cast_expression "(char)__ptr[9]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "__ptr[9]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }" { (expression_statement "*(undefined1 *)(__ptr + 9) = 1;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 1" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 == 0) goto LAB_000859cc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (if_statement "if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = 8;\n      goto LAB_00085999;\n    }" { (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (goto_statement "goto LAB_00085820;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar9 = 0;\n    goto LAB_00085999;\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;) (labeled_statement "LAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;" statement_identifier : (expression_statement "*(int *)((int)pppuVar15 + 0x38) = iVar9;" (assignment_expression "*(int *)((int)pppuVar15 + 0x38) = iVar9" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" * (cast_expression "(int *)((int)pppuVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;" if (parenthesized_expression "(*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0')" ( (binary_expression "*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0'" (pointer_expression "*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" * (cast_expression "(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9" (binary_expression "*(int *)((int)pppuVar15 + 0x34) + -2" (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" * (cast_expression "(int *)((int)pppuVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x34)" ( (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (goto_statement "goto LAB_00085795;" goto statement_identifier ;) (labeled_statement "LAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);" statement_identifier : (expression_statement "iVar7 = *(int *)((int)piVar16 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)piVar16 + 0x44)" identifier = (pointer_expression "*(int *)((int)piVar16 + 0x44)" * (cast_expression "(int *)((int)piVar16 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x44)" ( (binary_expression "(int)piVar16 + 0x44" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" identifier = (cast_expression "(undefined ***)piVar16" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (labeled_statement "LAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "joined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" statement_identifier : (if_statement "if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" { (labeled_statement "LAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;" statement_identifier : (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x859a8" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (expression_statement "FUN_000886f2();" (call_expression "FUN_000886f2()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = (uint *)((int)pppuVar15 + 0x10);" (assignment_expression "puVar1 = (uint *)((int)pppuVar15 + 0x10)" identifier = (cast_expression "(uint *)((int)pppuVar15 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x10)" ( (binary_expression "(int)pppuVar15 + 0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);" (assignment_expression "*puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44)" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + *(uint *)((int)pppuVar15 + 0x44)" (pointer_expression "*puVar1" * identifier) + (pointer_expression "*(uint *)((int)pppuVar15 + 0x44)" * (cast_expression "(uint *)((int)pppuVar15 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));" (assignment_expression "*(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (pointer_expression "*(int *)((int)pppuVar15 + 0x14)" * (cast_expression "(int *)((int)pppuVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x14)" ( (binary_expression "(int)pppuVar15 + 0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (pointer_expression "*(int *)((int)pppuVar15 + 0x14)" * (cast_expression "(int *)((int)pppuVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x14)" ( (binary_expression "(int)pppuVar15 + 0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (cast_expression "(uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" identifier (argument_list "(uVar5,*(uint *)((int)pppuVar15 + 0x44))" ( identifier , (pointer_expression "*(uint *)((int)pppuVar15 + 0x44)" * (cast_expression "(uint *)((int)pppuVar15 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + 0x44) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + 0x44) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + 0x44)" * (cast_expression "(undefined4 *)((int)pppuVar15 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar14 = (int *)pppuVar15;" (assignment_expression "piVar14 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }" { (labeled_statement "LAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);" statement_identifier : (expression_statement "uVar5 = *(uint *)((int)piVar14 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)piVar14 + 0x38)" identifier = (pointer_expression "*(uint *)((int)piVar14 + 0x38)" * (cast_expression "(uint *)((int)piVar14 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x38)" ( (binary_expression "(int)piVar14 + 0x38" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)piVar14;" (assignment_expression "pppuVar15 = (undefined ***)piVar14" identifier = (cast_expression "(undefined ***)piVar14" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;) })) (if_statement "if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }" { (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;) })) }))) (if_statement "if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }" if (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) (compound_statement "{\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }" { (labeled_statement "LAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;" statement_identifier : (expression_statement "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;" (assignment_expression "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (binary_expression "(int)*pppuVar15 + -0x61e1" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal)) ;)) (expression_statement "((int *)pppuVar15)[-5] = 0x85833;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85833" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0001930a();" (call_expression "FUN_0001930a()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)pppuVar15)[4] = -1;" (assignment_expression "((int *)pppuVar15)[4] = -1" (subscript_expression "((int *)pppuVar15)[4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "((int *)pppuVar15)[5] = -1;" (assignment_expression "((int *)pppuVar15)[5] = -1" (subscript_expression "((int *)pppuVar15)[5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00085601:\n    uVar5 = __ptr[0x126];" statement_identifier : (expression_statement "uVar5 = __ptr[0x126];" (assignment_expression "uVar5 = __ptr[0x126]" identifier = (subscript_expression "__ptr[0x126]" identifier [ number_literal ])) ;)) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(uVar5 + 0x18)" * (cast_expression "(undefined4 *)(uVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x18)" ( (binary_expression "uVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "*(uint *)((int)pppuVar15 + -0x10) = uVar5;" (assignment_expression "*(uint *)((int)pppuVar15 + -0x10) = uVar5" (pointer_expression "*(uint *)((int)pppuVar15 + -0x10)" * (cast_expression "(uint *)((int)pppuVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "*(uint **)((int)pppuVar15 + -0x10) = __ptr;" (assignment_expression "*(uint **)((int)pppuVar15 + -0x10) = __ptr" (pointer_expression "*(uint **)((int)pppuVar15 + -0x10)" * (cast_expression "(uint **)((int)pppuVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (labeled_statement "LAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);" statement_identifier : (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppuVar15 + 0xc)" * (cast_expression "(undefined4 *)((int)pppuVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0xc)" ( (binary_expression "(int)pppuVar15 + 0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (if_statement "if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)((int)pppuVar15 + 0x4c)" * (cast_expression "(int *)((int)pppuVar15 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x4c)" ( (binary_expression "(int)pppuVar15 + 0x4c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }" { comment (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x8571f" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return *(undefined8 *)((int)pppuVar15 + 0x10);" return (pointer_expression "*(undefined8 *)((int)pppuVar15 + 0x10)" * (cast_expression "(undefined8 *)((int)pppuVar15 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x10)" ( (binary_expression "(int)pppuVar15 + 0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (labeled_statement "LAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;" statement_identifier : (expression_statement "*(uint *)((int)pppuVar15 + 4) = uVar5;" (assignment_expression "*(uint *)((int)pppuVar15 + 4) = uVar5" (pointer_expression "*(uint *)((int)pppuVar15 + 4)" * (cast_expression "(uint *)((int)pppuVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 4)" ( (binary_expression "(int)pppuVar15 + 4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (goto_statement "goto LAB_000855ac;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */\n\nlonglong unpack_xz_stream(transformer_state_t *xstate)\n\n{\n  xz_buf iobuf;\n  \n}\n\n" comment (function_definition "longlong unpack_xz_stream(transformer_state_t *xstate)\n\n{\n  xz_buf iobuf;\n  \n}" type_identifier (function_declarator "unpack_xz_stream(transformer_state_t *xstate)" identifier (parameter_list "(transformer_state_t *xstate)" ( (parameter_declaration "transformer_state_t *xstate" type_identifier (pointer_declarator "*xstate" * identifier)) ))) (compound_statement "{\n  xz_buf iobuf;\n  \n}" { (declaration "xz_buf iobuf;" type_identifier identifier ;) })))
(translation_unit "undefined8 FUN_0008549d(void)\n\n{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}\n\n" (function_definition "undefined8 FUN_0008549d(void)\n\n{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}" type_identifier (function_declarator "FUN_0008549d(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uint *__ptr;" type_identifier (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "undefined ***pppuVar15;" type_identifier (pointer_declarator "***pppuVar15" * (pointer_declarator "**pppuVar15" * (pointer_declarator "*pppuVar15" * identifier))) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "undefined4 **ppuVar18;" type_identifier (pointer_declarator "**ppuVar18" * (pointer_declarator "*ppuVar18" * identifier)) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "undefined **local_6c;" type_identifier (pointer_declarator "**local_6c" * (pointer_declarator "*local_6c" * identifier)) ;) (declaration "undefined4 local_68;" type_identifier identifier ;) (declaration "undefined4 **local_64;" type_identifier (pointer_declarator "**local_64" * (pointer_declarator "*local_64" * identifier)) ;) (declaration "undefined4 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "char *local_54;" primitive_type (pointer_declarator "*local_54" * identifier) ;) (declaration "undefined4 *local_38;" type_identifier (pointer_declarator "*local_38" * identifier) ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 *local_2c;" type_identifier (pointer_declarator "*local_2c" * identifier) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "pppuVar15 = &local_6c;" (assignment_expression "pppuVar15 = &local_6c" identifier = (pointer_expression "&local_6c" & identifier)) ;) (expression_statement "local_6c = &__DT_PLTGOT;" (assignment_expression "local_6c = &__DT_PLTGOT" identifier = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }" if (parenthesized_expression "(DAT_000dc718 == 0)" ( (binary_expression "DAT_000dc718 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_000af99c();\n  }" { (expression_statement "FUN_000af99c();" (call_expression "FUN_000af99c()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "local_64 = &local_38;" (assignment_expression "local_64 = &local_38" identifier = (pointer_expression "&local_38" & identifier)) ;) (expression_statement "ppuVar18 = local_64;" (assignment_expression "ppuVar18 = local_64" identifier = identifier) ;) (for_statement "for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }" for ( (assignment_expression "iVar9 = 6" identifier = number_literal) ; (binary_expression "iVar9 != 0" identifier != number_literal) ; (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ) (compound_statement "{\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }" { (expression_statement "*ppuVar18 = (undefined4 *)0x0;" (assignment_expression "*ppuVar18 = (undefined4 *)0x0" (pointer_expression "*ppuVar18" * identifier) = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;" (assignment_expression "ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1" identifier = (binary_expression "ppuVar18 + (uint)bVar19 * -2 + 1" (binary_expression "ppuVar18 + (uint)bVar19 * -2" identifier + (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "local_60 = (undefined4 *)FUN_0001a288();" (assignment_expression "local_60 = (undefined4 *)FUN_0001a288()" identifier = (cast_expression "(undefined4 *)FUN_0001a288()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a288()" identifier (argument_list "()" ( ))))) ;) (expression_statement "local_2c = local_60 + 0x800;" (assignment_expression "local_2c = local_60 + 0x800" identifier = (binary_expression "local_60 + 0x800" identifier + number_literal)) ;) (expression_statement "local_24 = 0x2000;" (assignment_expression "local_24 = 0x2000" identifier = number_literal) ;) (if_statement "if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }" if (parenthesized_expression "((local_54 == (char *)0x0) || (*local_54 != '\0'))" ( (binary_expression "(local_54 == (char *)0x0) || (*local_54 != '\0')" (parenthesized_expression "(local_54 == (char *)0x0)" ( (binary_expression "local_54 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(*local_54 != '\0')" ( (binary_expression "*local_54 != '\0'" (pointer_expression "*local_54" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }" { (expression_statement "*local_60 = 0x587a37fd;" (assignment_expression "*local_60 = 0x587a37fd" (pointer_expression "*local_60" * identifier) = number_literal) ;) (expression_statement "*(undefined2 *)(local_60 + 1) = 0x5a;" (assignment_expression "*(undefined2 *)(local_60 + 1) = 0x5a" (pointer_expression "*(undefined2 *)(local_60 + 1)" * (cast_expression "(undefined2 *)(local_60 + 1)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + 1)" ( (binary_expression "local_60 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_30 = 6;" (assignment_expression "local_30 = 6" identifier = number_literal) ;) })) (expression_statement "local_38 = local_60;" (assignment_expression "local_38 = local_60" identifier = identifier) ;) (expression_statement "__ptr = (uint *)malloc(0x49c);" (assignment_expression "__ptr = (uint *)malloc(0x49c)" identifier = (cast_expression "(uint *)malloc(0x49c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x49c)" identifier (argument_list "(0x49c)" ( number_literal ))))) ;) (if_statement "if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }" if (parenthesized_expression "(__ptr != (uint *)0x0)" ( (binary_expression "__ptr != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }" { (expression_statement "__ptr[8] = 2;" (assignment_expression "__ptr[8] = 2" (subscript_expression "__ptr[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pvVar4 = malloc(0x6f28);" (assignment_expression "pvVar4 = malloc(0x6f28)" identifier = (call_expression "malloc(0x6f28)" identifier (argument_list "(0x6f28)" ( number_literal )))) ;) (if_statement "if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (expression_statement "__ptr = (uint *)0x0;" (assignment_expression "__ptr = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" else (compound_statement "{\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" { (expression_statement "*(undefined4 *)((int)pvVar4 + 0x3c) = 2;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x3c) = 2" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x3c)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x3c)" ( (binary_expression "(int)pvVar4 + 0x3c" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x34)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x34)" ( (binary_expression "(int)pvVar4 + 0x34" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x18) = 0;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x18) = 0" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x18)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x18)" ( (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x38) = 0;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x38) = 0" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x38)" * (cast_expression "(undefined4 *)((int)pvVar4 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pvVar4 + 0x38)" ( (binary_expression "(int)pvVar4 + 0x38" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "__ptr[0x126] = (uint)pvVar4;" (assignment_expression "__ptr[0x126] = (uint)pvVar4" (subscript_expression "__ptr[0x126]" identifier [ number_literal ]) = (cast_expression "(uint)pvVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "FUN_00084bcc();" (call_expression "FUN_00084bcc()" identifier (argument_list "()" ( ))) ;) }))) })) (expression_statement "local_68 = local_34;" (assignment_expression "local_68 = local_34" identifier = identifier) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (labeled_statement "LAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];" statement_identifier : (expression_statement "uVar5 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xf]" identifier = (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;)) (if_statement "if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }" if (parenthesized_expression "(uVar5 != ((int *)pppuVar15)[1])" ( (binary_expression "uVar5 != ((int *)pppuVar15)[1]" identifier != (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )) (compound_statement "{\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }" { (labeled_statement "LAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" statement_identifier : (if_statement "if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (do_statement "do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);" do (compound_statement "{\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      }" { (if_statement "if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }" if (parenthesized_expression "(*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0')" ( (binary_expression "*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0'" (pointer_expression "*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" * (cast_expression "(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" ( (binary_expression "((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[3]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }" { (if_statement "if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }" { (expression_statement "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];" (assignment_expression "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) })) (expression_statement "((int *)pppuVar15)[-1] = 0x856a9;" (assignment_expression "((int *)pppuVar15)[-1] = 0x856a9" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_00084bcc();" (call_expression "FUN_00084bcc()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];" (assignment_expression "((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe]" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (goto_statement "goto LAB_000856b1;" goto statement_identifier ;) })) (expression_statement "((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;" (assignment_expression "((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (binary_expression "((int *)pppuVar15)[1] + 1" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) + number_literal)) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) }) while (parenthesized_expression "((uint)((int *)pppuVar15)[1] < uVar5)" ( (binary_expression "(uint)((int *)pppuVar15)[1] < uVar5" (subscript_expression "(uint)((int *)pppuVar15)[1]" (call_expression "(uint)((int *)pppuVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ]) < identifier) )) ;) (expression_statement "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];" (assignment_expression "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) }))) (labeled_statement "LAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];" statement_identifier : (expression_statement "((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];" (assignment_expression "((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11]" (subscript_expression "((int *)pppuVar15)[8]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;)) (expression_statement "__ptr[4] = ((int *)pppuVar15)[1];" (assignment_expression "__ptr[4] = ((int *)pppuVar15)[1]" (subscript_expression "__ptr[4]" identifier [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = *__ptr;" (assignment_expression "uVar5 = *__ptr" identifier = (pointer_expression "*__ptr" * identifier)) ;) (expression_statement "((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);" (assignment_expression "((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15)" (subscript_expression "((int *)pppuVar15)[0xb]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (cast_expression "(int)(__ptr + 0x15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(__ptr + 0x15)" ( (binary_expression "__ptr + 0x15" identifier + number_literal) )))) ;) (do_statement "do {\n    } while (9 < uVar5);" do (compound_statement "{\n    }" { }) while (parenthesized_expression "(9 < uVar5)" ( (binary_expression "9 < uVar5" number_literal < identifier) )) ;) (labeled_statement "LAB_000856cf:\n    piVar13 = (int *)pppuVar15;" statement_identifier : (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (switch_statement "switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }" switch (parenthesized_expression "(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15)" ( (binary_expression "*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15" (pointer_expression "*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4)" * (cast_expression "(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + -0x15650 + uVar5 * 4)" ( (binary_expression "(int)*pppuVar15 + -0x15650 + uVar5 * 4" (binary_expression "(int)*pppuVar15 + -0x15650" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) + (binary_expression "uVar5 * 4" identifier * number_literal)) )))) + (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier))) )) (compound_statement "{\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }" { (case_statement "case 0x8571f:\n      goto switchD_000856db_caseD_8571f;" case number_literal : (goto_statement "goto switchD_000856db_caseD_8571f;" goto statement_identifier ;)) (case_statement "case 0x8577d:\n      goto switchD_000856db_caseD_8577d;" case number_literal : (goto_statement "goto switchD_000856db_caseD_8577d;" goto statement_identifier ;)) (case_statement "case 0x857d4:\n      goto switchD_000856db_caseD_857d4;" case number_literal : (goto_statement "goto switchD_000856db_caseD_857d4;" goto statement_identifier ;)) (case_statement "case 0x858aa:\n      goto switchD_000856db_caseD_858aa;" case number_literal : (goto_statement "goto switchD_000856db_caseD_858aa;" goto statement_identifier ;)) (case_statement "case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;" case number_literal : (expression_statement "((int *)pppuVar15)[-1] = 0x85b0c;" (assignment_expression "((int *)pppuVar15)[-1] = 0x85b0c" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" identifier = (call_expression "FUN_0008543e()" identifier (argument_list "()" ( )))) ;) (if_statement "if (cVar3 == '\0') goto LAB_000858b9;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000858b9;" goto statement_identifier ;)) (expression_statement "*__ptr = 1;" (assignment_expression "*__ptr = 1" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (if_statement "if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }" if (parenthesized_expression "((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a))" ( (binary_expression "(__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)" (parenthesized_expression "(__ptr[0x26] != 0x587a37fd)" ( (binary_expression "__ptr[0x26] != 0x587a37fd" (subscript_expression "__ptr[0x26]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "((short)__ptr[0x27] != 0x5a)" ( (binary_expression "(short)__ptr[0x27] != 0x5a" (cast_expression "(short)__ptr[0x27]" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (subscript_expression "__ptr[0x27]" identifier [ number_literal ])) != number_literal) ))) )) (compound_statement "{\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }" { (expression_statement "iVar7 = ((int *)pppuVar15)[0x11];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x11]" identifier = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "iVar9 = 5;" (assignment_expression "iVar9 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" * (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" ( (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) ))))) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x85b5b;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85b5b" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar13 = (int *)pppuVar15 + -1;" (assignment_expression "piVar13 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (if_statement "if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;" if (parenthesized_expression "(~uVar5 != __ptr[0x28])" ( (binary_expression "~uVar5 != __ptr[0x28]" (unary_expression "~uVar5" ~ identifier) != (subscript_expression "__ptr[0x28]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (if_statement "if (*(char *)((int)__ptr + 0x9e) != '\0') break;" if (parenthesized_expression "(*(char *)((int)__ptr + 0x9e) != '\0')" ( (binary_expression "*(char *)((int)__ptr + 0x9e) != '\0'" (pointer_expression "*(char *)((int)__ptr + 0x9e)" * (cast_expression "(char *)((int)__ptr + 0x9e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x9e)" ( (binary_expression "(int)__ptr + 0x9e" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (expression_statement "uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);" (assignment_expression "uVar5 = (uint)*(byte *)((int)__ptr + 0x9f)" identifier = (binary_expression "(uint)*(byte *)((int)__ptr + 0x9f)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)__ptr + 0x9f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x9f)" ( (binary_expression "(int)__ptr + 0x9f" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "__ptr[7] = uVar5;" (assignment_expression "__ptr[7] = uVar5" (subscript_expression "__ptr[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" identifier = (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (if_statement "if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }" if (parenthesized_expression "(uVar5 < 0x10)" ( (binary_expression "uVar5 < 0x10" identifier < number_literal) )) (compound_statement "{\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }" { (if_statement "if (uVar5 < 2) goto switchD_000856db_caseD_85b95;" if (parenthesized_expression "(uVar5 < 2)" ( (binary_expression "uVar5 < 2" identifier < number_literal) )) (goto_statement "goto switchD_000856db_caseD_85b95;" goto statement_identifier ;)) (expression_statement "iVar7 = ((int *)pppuVar15)[0x10];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x10]" identifier = (subscript_expression "((int *)pppuVar15)[0x10]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" identifier = (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int *)pppuVar15 + -1)" ( (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;" case number_literal : (labeled_statement "switchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);" statement_identifier : (expression_statement "uVar12 = *(uint *)((int)piVar13 + 0x38);" (assignment_expression "uVar12 = *(uint *)((int)piVar13 + 0x38)" identifier = (pointer_expression "*(uint *)((int)piVar13 + 0x38)" * (cast_expression "(uint *)((int)piVar13 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x38)" ( (binary_expression "(int)piVar13 + 0x38" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "uVar5 = *(uint *)((int)piVar13 + 0x3c);" (assignment_expression "uVar5 = *(uint *)((int)piVar13 + 0x3c)" identifier = (pointer_expression "*(uint *)((int)piVar13 + 0x3c)" * (cast_expression "(uint *)((int)piVar13 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x3c)" ( (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;" if (parenthesized_expression "(uVar12 == *(uint *)((int)piVar13 + 0x3c))" ( (binary_expression "uVar12 == *(uint *)((int)piVar13 + 0x3c)" identifier == (pointer_expression "*(uint *)((int)piVar13 + 0x3c)" * (cast_expression "(uint *)((int)piVar13 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x3c)" ( (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (if_statement "if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }" if (parenthesized_expression "(*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0)" ( (binary_expression "*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0" (pointer_expression "*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" * (cast_expression "(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (binary_expression "*(int *)((int)piVar13 + 0x34) + uVar12" (pointer_expression "*(int *)((int)piVar13 + 0x34)" * (cast_expression "(int *)((int)piVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x34)" ( (binary_expression "(int)piVar13 + 0x34" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + identifier) )))) == number_literal) )) (compound_statement "{\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }" { (expression_statement "*(uint *)((int)piVar13 + 0x38) = uVar12 + 1;" (assignment_expression "*(uint *)((int)piVar13 + 0x38) = uVar12 + 1" (pointer_expression "*(uint *)((int)piVar13 + 0x38)" * (cast_expression "(uint *)((int)piVar13 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x38)" ( (binary_expression "(int)piVar13 + 0x38" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "__ptr[4] = uVar12;" (assignment_expression "__ptr[4] = uVar12" (subscript_expression "__ptr[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*__ptr = 6;" (assignment_expression "*__ptr = 6" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (expression_statement "uVar5 = 6;" (assignment_expression "uVar5 = 6" identifier = number_literal) ;) (goto_statement "goto LAB_000856cf;" goto statement_identifier ;) })) (expression_statement "uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;" (assignment_expression "uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4" identifier = (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4" (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4" (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar13 + 0x34) + uVar12)" ( (binary_expression "*(int *)((int)piVar13 + 0x34) + uVar12" (pointer_expression "*(int *)((int)piVar13 + 0x34)" * (cast_expression "(int *)((int)piVar13 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x34)" ( (binary_expression "(int)piVar13 + 0x34" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + identifier) )))) * number_literal) + number_literal)) ;) (expression_statement "__ptr[0xe] = uVar5;" (assignment_expression "__ptr[0xe] = uVar5" (subscript_expression "__ptr[0xe]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x25] = uVar5;" (assignment_expression "__ptr[0x25] = uVar5" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x24] = 0;" (assignment_expression "__ptr[0x24] = 0" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*__ptr = 2;" (assignment_expression "*__ptr = 2" (pointer_expression "*__ptr" * identifier) = number_literal) ;)) (case_statement "case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;" case number_literal : (expression_statement "piVar13[-1] = 0x85be1;" (assignment_expression "piVar13[-1] = 0x85be1" (subscript_expression "piVar13[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" identifier = (call_expression "FUN_0008543e()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (cVar3 == '\0') goto LAB_000858b9;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000858b9;" goto statement_identifier ;)) (expression_statement "__ptr[0x25] = __ptr[0x25] - 4;" (assignment_expression "__ptr[0x25] = __ptr[0x25] - 4" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) = (binary_expression "__ptr[0x25] - 4" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);" (assignment_expression "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8)" (subscript_expression "piVar13[-4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(*piVar13 + 0xcf8)" * (cast_expression "(undefined4 *)(*piVar13 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar13 + 0xcf8)" ( (binary_expression "*piVar13 + 0xcf8" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) ;) (expression_statement "piVar13[-5] = 0x85c17;" (assignment_expression "piVar13[-5] = 0x85c17" (subscript_expression "piVar13[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar12 = FUN_000af9bf();" (assignment_expression "uVar12 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (expression_statement "piVar17 = piVar13 + -1;" (assignment_expression "piVar17 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (if_statement "if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;" if (parenthesized_expression "(~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98))" ( (binary_expression "~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)" (unary_expression "~uVar12" ~ identifier) != (pointer_expression "*(uint *)((int)__ptr + uVar5 + 0x98)" * (cast_expression "(uint *)((int)__ptr + uVar5 + 0x98)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar5 + 0x98)" ( (binary_expression "(int)__ptr + uVar5 + 0x98" (binary_expression "(int)__ptr + uVar5" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[0x24] = 2;" (assignment_expression "__ptr[0x24] = 2" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar19 = *(byte *)((int)__ptr + 0x99);" (assignment_expression "bVar19 = *(byte *)((int)__ptr + 0x99)" identifier = (pointer_expression "*(byte *)((int)__ptr + 0x99)" * (cast_expression "(byte *)((int)__ptr + 0x99)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x99)" ( (binary_expression "(int)__ptr + 0x99" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (if_statement "if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }" if (parenthesized_expression "((bVar19 & 0x3f) == 0)" ( (binary_expression "(bVar19 & 0x3f) == 0" (parenthesized_expression "(bVar19 & 0x3f)" ( (binary_expression "bVar19 & 0x3f" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }" { (if_statement "if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" if (parenthesized_expression "((bVar19 & 0x40) == 0)" ( (binary_expression "(bVar19 & 0x40) == 0" (parenthesized_expression "(bVar19 & 0x40)" ( (binary_expression "bVar19 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" { (expression_statement "__ptr[10] = 0xffffffff;" (assignment_expression "__ptr[10] = 0xffffffff" (subscript_expression "__ptr[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0xb] = 0xffffffff;" (assignment_expression "__ptr[0xb] = 0xffffffff" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((char)bVar19 < '\0') goto LAB_00086094;" if (parenthesized_expression "((char)bVar19 < '\0')" ( (binary_expression "(char)bVar19 < '\0'" (cast_expression "(char)bVar19" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00086094;" goto statement_identifier ;)) (labeled_statement "LAB_00085c61:\n          __ptr[0xc] = 0xffffffff;" statement_identifier : (expression_statement "__ptr[0xc] = 0xffffffff;" (assignment_expression "__ptr[0xc] = 0xffffffff" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "__ptr[0xd] = 0xffffffff;" (assignment_expression "__ptr[0xd] = 0xffffffff" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar12 = __ptr[0x24];" (assignment_expression "uVar12 = __ptr[0x24]" identifier = (subscript_expression "__ptr[0x24]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar5 - uVar12;" (assignment_expression "uVar8 = uVar5 - uVar12" identifier = (binary_expression "uVar5 - uVar12" identifier - identifier)) ;) }) (else_clause "else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" else (compound_statement "{\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" { (expression_statement "piVar13[-5] = uVar5;" (assignment_expression "piVar13[-5] = uVar5" (subscript_expression "piVar13[-5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13[-6] = 0x860ee;" (assignment_expression "piVar13[-6] = 0x860ee" (subscript_expression "piVar13[-6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" identifier = (call_expression "FUN_00084b26()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -2);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -2)" identifier = (cast_expression "(undefined ***)(piVar13 + -2)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -2)" ( (binary_expression "piVar13 + -2" identifier + number_literal) )))) ;) (expression_statement "piVar17 = piVar13 + -2;" (assignment_expression "piVar17 = piVar13 + -2" identifier = (binary_expression "piVar13 + -2" identifier + number_literal)) ;) (expression_statement "piVar16 = piVar13 + -2;" (assignment_expression "piVar16 = piVar13 + -2" identifier = (binary_expression "piVar13 + -2" identifier + number_literal)) ;) (if_statement "if (iVar9 != 1) goto LAB_00085a34;" if (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[10] = __ptr[2];" (assignment_expression "__ptr[10] = __ptr[2]" (subscript_expression "__ptr[10]" identifier [ number_literal ]) = (subscript_expression "__ptr[2]" identifier [ number_literal ])) ;) (expression_statement "__ptr[0xb] = __ptr[3];" (assignment_expression "__ptr[0xb] = __ptr[3]" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) = (subscript_expression "__ptr[3]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (if_statement "if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;" if (parenthesized_expression "(-1 < *(char *)((int)__ptr + 0x99))" ( (binary_expression "-1 < *(char *)((int)__ptr + 0x99)" number_literal < (pointer_expression "*(char *)((int)__ptr + 0x99)" * (cast_expression "(char *)((int)__ptr + 0x99)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0x99)" ( (binary_expression "(int)__ptr + 0x99" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (goto_statement "goto LAB_00085c61;" goto statement_identifier ;)) (labeled_statement "LAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;" statement_identifier : (expression_statement "*(uint *)((int)piVar17 + -0x10) = uVar5;" (assignment_expression "*(uint *)((int)piVar17 + -0x10) = uVar5" (pointer_expression "*(uint *)((int)piVar17 + -0x10)" * (cast_expression "(uint *)((int)piVar17 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + -0x10)" ( (binary_expression "(int)piVar17 + -0x10" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;" (assignment_expression "*(undefined4 *)((int)piVar17 + -0x14) = 0x860a7" (pointer_expression "*(undefined4 *)((int)piVar17 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar17 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + -0x14)" ( (binary_expression "(int)piVar17 + -0x14" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" identifier = (call_expression "FUN_00084b26()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar17 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar17 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar17 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar17 + -4)" ( (binary_expression "(int)piVar17 + -4" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar16 = (int *)((int)piVar17 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar17 + -4)" identifier = (cast_expression "(int *)((int)piVar17 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar17 + -4)" ( (binary_expression "(int)piVar17 + -4" (cast_expression "(int)piVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar9 != 1) goto LAB_00085a34;" if (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[0xc] = __ptr[2];" (assignment_expression "__ptr[0xc] = __ptr[2]" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) = (subscript_expression "__ptr[2]" identifier [ number_literal ])) ;) (expression_statement "__ptr[0xd] = __ptr[3];" (assignment_expression "__ptr[0xd] = __ptr[3]" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) = (subscript_expression "__ptr[3]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = __ptr[0x24];" (assignment_expression "uVar12 = __ptr[0x24]" identifier = (subscript_expression "__ptr[0x24]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar5 - uVar12;" (assignment_expression "uVar8 = uVar5 - uVar12" identifier = (binary_expression "uVar5 - uVar12" identifier - identifier)) ;) }))) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (uVar8 < 2) goto LAB_00085a34;" if (parenthesized_expression "(uVar8 < 2)" ( (binary_expression "uVar8 < 2" identifier < number_literal) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "__ptr[0x24] = uVar12 + 1;" (assignment_expression "__ptr[0x24] = uVar12 + 1" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;" if (parenthesized_expression "(*(char *)((int)__ptr + uVar12 + 0x98) != '!')" ( (binary_expression "*(char *)((int)__ptr + uVar12 + 0x98) != '!'" (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x98)" * (cast_expression "(char *)((int)__ptr + uVar12 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x98)" ( (binary_expression "(int)__ptr + uVar12 + 0x98" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) != (char_literal "'!'" ' character ')) )) (break_statement "break;" break ;)) (expression_statement "__ptr[0x24] = uVar12 + 2;" (assignment_expression "__ptr[0x24] = uVar12 + 2" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar12 + 2" identifier + number_literal)) ;) (if_statement "if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;" if (parenthesized_expression "(*(char *)((int)__ptr + uVar12 + 0x99) != '\x01')" ( (binary_expression "*(char *)((int)__ptr + uVar12 + 0x99) != '\x01'" (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x99)" * (cast_expression "(char *)((int)__ptr + uVar12 + 0x99)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x99)" ( (binary_expression "(int)__ptr + uVar12 + 0x99" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) != (char_literal "'\x01'" ' escape_sequence ')) )) (break_statement "break;" break ;)) (if_statement "if (uVar12 + 2 == uVar5) goto LAB_00085a34;" if (parenthesized_expression "(uVar12 + 2 == uVar5)" ( (binary_expression "uVar12 + 2 == uVar5" (binary_expression "uVar12 + 2" identifier + number_literal) == identifier) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar12 + 3;" (assignment_expression "uVar8 = uVar12 + 3" identifier = (binary_expression "uVar12 + 3" identifier + number_literal)) ;) (expression_statement "__ptr[0x24] = uVar8;" (assignment_expression "__ptr[0x24] = uVar8" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = identifier) ;) (expression_statement "bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);" (assignment_expression "bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a)" identifier = (pointer_expression "*(byte *)((int)__ptr + uVar12 + 0x9a)" * (cast_expression "(byte *)((int)__ptr + uVar12 + 0x9a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x9a)" ( (binary_expression "(int)__ptr + uVar12 + 0x9a" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (if_statement "if (0x27 < bVar19) break;" if (parenthesized_expression "(0x27 < bVar19)" ( (binary_expression "0x27 < bVar19" number_literal < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = __ptr[0x126];" (assignment_expression "uVar12 = __ptr[0x126]" identifier = (subscript_expression "__ptr[0x126]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);" (assignment_expression "uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f)" identifier = (binary_expression "(bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f)" (binary_expression "(bVar19 & 1) + 2" (parenthesized_expression "(bVar19 & 1)" ( (binary_expression "bVar19 & 1" identifier & number_literal) )) + number_literal) << (parenthesized_expression "((bVar19 >> 1) + 0xb & 0x1f)" ( (binary_expression "(bVar19 >> 1) + 0xb & 0x1f" (binary_expression "(bVar19 >> 1) + 0xb" (parenthesized_expression "(bVar19 >> 1)" ( (binary_expression "bVar19 >> 1" identifier >> number_literal) )) + number_literal) & number_literal) )))) ;) (expression_statement "*(uint *)(uVar12 + 0x30) = uVar10;" (assignment_expression "*(uint *)(uVar12 + 0x30) = uVar10" (pointer_expression "*(uint *)(uVar12 + 0x30)" * (cast_expression "(uint *)(uVar12 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x30)" ( (binary_expression "uVar12 + 0x30" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }" if (parenthesized_expression "(*(uint *)(uVar12 + 0x34) < uVar10)" ( (binary_expression "*(uint *)(uVar12 + 0x34) < uVar10" (pointer_expression "*(uint *)(uVar12 + 0x34)" * (cast_expression "(uint *)(uVar12 + 0x34)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x34)" ( (binary_expression "uVar12 + 0x34" identifier + number_literal) )))) < identifier) )) (compound_statement "{\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }" { (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x44)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = 4;" (assignment_expression "iVar9 = 4" identifier = number_literal) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (expression_statement "*(uint *)(uVar12 + 0x2c) = uVar10;" (assignment_expression "*(uint *)(uVar12 + 0x2c) = uVar10" (pointer_expression "*(uint *)(uVar12 + 0x2c)" * (cast_expression "(uint *)(uVar12 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x2c)" ( (binary_expression "uVar12 + 0x2c" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }" if (parenthesized_expression "((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10))" ( (binary_expression "(*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)" (parenthesized_expression "(*(int *)(uVar12 + 0x3c) == 2)" ( (binary_expression "*(int *)(uVar12 + 0x3c) == 2" (pointer_expression "*(int *)(uVar12 + 0x3c)" * (cast_expression "(int *)(uVar12 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x3c)" ( (binary_expression "uVar12 + 0x3c" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(uint *)(uVar12 + 0x38) < uVar10)" ( (binary_expression "*(uint *)(uVar12 + 0x38) < uVar10" (pointer_expression "*(uint *)(uVar12 + 0x38)" * (cast_expression "(uint *)(uVar12 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x38)" ( (binary_expression "uVar12 + 0x38" identifier + number_literal) )))) < identifier) ))) )) (compound_statement "{\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }" { (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(uVar12 + 0x18)" * (cast_expression "(undefined4 *)(uVar12 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x18)" ( (binary_expression "uVar12 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(uVar12 + 0x30)" * (cast_expression "(undefined4 *)(uVar12 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x30)" ( (binary_expression "uVar12 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));" (assignment_expression "pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10))" identifier = (call_expression "malloc(*(size_t *)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(size_t *)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(size_t *)((int)pppuVar15 + -0x10)" * (cast_expression "(size_t *)((int)pppuVar15 + -0x10)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))) ;) (expression_statement "*(void **)(uVar12 + 0x18) = pvVar4;" (assignment_expression "*(void **)(uVar12 + 0x18) = pvVar4" (pointer_expression "*(void **)(uVar12 + 0x18)" * (cast_expression "(void **)(uVar12 + 0x18)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar12 + 0x18)" ( (binary_expression "uVar12 + 0x18" identifier + number_literal) )))) = identifier) ;) (if_statement "if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }" if (parenthesized_expression "(pvVar4 == (void *)0x0)" ( (binary_expression "pvVar4 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }" { (expression_statement "*(undefined4 *)(uVar12 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x38) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x38)" * (cast_expression "(undefined4 *)(uVar12 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x38)" ( (binary_expression "uVar12 + 0x38" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x44) == 0)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x44) == 0" (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00085820;" goto statement_identifier ;)) (expression_statement "iVar9 = 3;" (assignment_expression "iVar9 = 3" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" identifier = (subscript_expression "__ptr[0x25]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = __ptr[0x24];" (assignment_expression "uVar8 = __ptr[0x24]" identifier = (subscript_expression "__ptr[0x24]" identifier [ number_literal ])) ;) })) (expression_statement "*(undefined4 *)(uVar12 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x68) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x68)" * (cast_expression "(undefined4 *)(uVar12 + 0x68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x68)" ( (binary_expression "uVar12 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(uVar12 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x40) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x40)" * (cast_expression "(undefined4 *)(uVar12 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x40)" ( (binary_expression "uVar12 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(uVar12 + 0x50) = 1;" (assignment_expression "*(undefined1 *)(uVar12 + 0x50) = 1" (pointer_expression "*(undefined1 *)(uVar12 + 0x50)" * (cast_expression "(undefined1 *)(uVar12 + 0x50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x50)" ( (binary_expression "uVar12 + 0x50" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(uVar12 + 0x6ee4) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x6ee4) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x6ee4)" * (cast_expression "(undefined4 *)(uVar12 + 0x6ee4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x6ee4)" ( (binary_expression "uVar12 + 0x6ee4" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }" if (parenthesized_expression "(uVar8 < uVar5)" ( (binary_expression "uVar8 < uVar5" identifier < identifier) )) (compound_statement "{\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }" { (expression_statement "__ptr[0x24] = uVar8 + 1;" (assignment_expression "__ptr[0x24] = uVar8 + 1" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);" (assignment_expression "cVar3 = *(char *)((int)__ptr + uVar8 + 0x98)" identifier = (pointer_expression "*(char *)((int)__ptr + uVar8 + 0x98)" * (cast_expression "(char *)((int)__ptr + uVar8 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar8 + 0x98)" ( (binary_expression "(int)__ptr + uVar8 + 0x98" (binary_expression "(int)__ptr + uVar8" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "uVar12 = uVar8 + 1;" (assignment_expression "uVar12 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (while_statement "while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }" { (if_statement "if (cVar3 != '\0') goto LAB_00085fed;" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085fed;" goto statement_identifier ;)) (if_statement "if (uVar12 == uVar5) break;" if (parenthesized_expression "(uVar12 == uVar5)" ( (binary_expression "uVar12 == uVar5" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "__ptr[0x24] = uVar12 + 1;" (assignment_expression "__ptr[0x24] = uVar12 + 1" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);" (assignment_expression "cVar3 = *(char *)((int)__ptr + uVar12 + 0x98)" identifier = (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x98)" * (cast_expression "(char *)((int)__ptr + uVar12 + 0x98)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + uVar12 + 0x98)" ( (binary_expression "(int)__ptr + uVar12 + 0x98" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) })) })) (expression_statement "__ptr[0x24] = 0;" (assignment_expression "__ptr[0x24] = 0" (subscript_expression "__ptr[0x24]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0xf] = 0;" (assignment_expression "__ptr[0xf] = 0" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x10] = 0;" (assignment_expression "__ptr[0x10] = 0" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x11] = 0;" (assignment_expression "__ptr[0x11] = 0" (subscript_expression "__ptr[0x11]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x12] = 0;" (assignment_expression "__ptr[0x12] = 0" (subscript_expression "__ptr[0x12]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*__ptr = 3;" (assignment_expression "*__ptr = 3" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];" statement_identifier : (expression_statement "__ptr[4] = ((int *)pppuVar15)[0xe];" (assignment_expression "__ptr[4] = ((int *)pppuVar15)[0xe]" (subscript_expression "__ptr[4]" identifier [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;)) (expression_statement "__ptr[5] = ((int *)pppuVar15)[0x11];" (assignment_expression "__ptr[5] = ((int *)pppuVar15)[0x11]" (subscript_expression "__ptr[5]" identifier [ number_literal ]) = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "((int *)pppuVar15)[-1] = 0x85d70;" (assignment_expression "((int *)pppuVar15)[-1] = 0x85d70" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "iVar9 = FUN_00084c5e();" (assignment_expression "iVar9 = FUN_00084c5e()" identifier = (call_expression "FUN_00084c5e()" identifier (argument_list "()" ( )))) ;) (expression_statement "((int *)pppuVar15)[7] = iVar9;" (assignment_expression "((int *)pppuVar15)[7] = iVar9" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];" (assignment_expression "uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf]" identifier = (binary_expression "(((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf]" (parenthesized_expression "(((int *)pppuVar15)[0xe] - __ptr[4])" ( (binary_expression "((int *)pppuVar15)[0xe] - __ptr[4]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) - (subscript_expression "__ptr[4]" identifier [ number_literal ])) )) + (subscript_expression "__ptr[0xf]" identifier [ number_literal ]))) ;) (expression_statement "uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);" (assignment_expression "uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" identifier = (binary_expression "__ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) + (cast_expression "(uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" identifier (argument_list "(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" ( (binary_expression "((int *)pppuVar15)[0xe] - __ptr[4]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) - (subscript_expression "__ptr[4]" identifier [ number_literal ])) , (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) )))))) ;) (expression_statement "__ptr[0xf] = uVar8;" (assignment_expression "__ptr[0xf] = uVar8" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x10] = uVar10;" (assignment_expression "__ptr[0x10] = uVar10" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = ((int *)pppuVar15)[0x11];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x11]" identifier = (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = __ptr[5];" (assignment_expression "uVar5 = __ptr[5]" identifier = (subscript_expression "__ptr[5]" identifier [ number_literal ])) ;) (expression_statement "((int *)pppuVar15)[9] = uVar5;" (assignment_expression "((int *)pppuVar15)[9] = uVar5" (subscript_expression "((int *)pppuVar15)[9]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar5 = iVar7 - uVar5;" (assignment_expression "uVar5 = iVar7 - uVar5" identifier = (binary_expression "iVar7 - uVar5" identifier - identifier)) ;) (expression_statement "((int *)pppuVar15)[10] = uVar5;" (assignment_expression "((int *)pppuVar15)[10] = uVar5" (subscript_expression "((int *)pppuVar15)[10]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = uVar5 + __ptr[0x11];" (assignment_expression "uVar12 = uVar5 + __ptr[0x11]" identifier = (binary_expression "uVar5 + __ptr[0x11]" identifier + (subscript_expression "__ptr[0x11]" identifier [ number_literal ]))) ;) (expression_statement "uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);" (assignment_expression "uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11])" identifier = (binary_expression "__ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11])" (subscript_expression "__ptr[0x12]" identifier [ number_literal ]) + (cast_expression "(uint)CARRY4(uVar5,__ptr[0x11])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,__ptr[0x11])" identifier (argument_list "(uVar5,__ptr[0x11])" ( identifier , (subscript_expression "__ptr[0x11]" identifier [ number_literal ]) )))))) ;) (expression_statement "__ptr[0x11] = uVar12;" (assignment_expression "__ptr[0x11] = uVar12" (subscript_expression "__ptr[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x12] = uVar5;" (assignment_expression "__ptr[0x12] = uVar5" (subscript_expression "__ptr[0x12]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }" if (parenthesized_expression "((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)))" ( (binary_expression "(__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))" (parenthesized_expression "(__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8))" ( (binary_expression "__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)" (binary_expression "__ptr[0xb] < uVar10" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) < identifier) || (binary_expression "__ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)" (binary_expression "__ptr[0xb] - uVar10" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)(__ptr[10] < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__ptr[10] < uVar8)" ( (binary_expression "__ptr[10] < uVar8" (subscript_expression "__ptr[10]" identifier [ number_literal ]) < identifier) ))))) )) || (parenthesized_expression "(__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))" ( (binary_expression "__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)" (binary_expression "__ptr[0xd] < uVar5" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) < identifier) || (binary_expression "__ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)" (binary_expression "__ptr[0xd] - uVar5" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) - identifier) < (call_expression "(uint)(__ptr[0xc] < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__ptr[0xc] < uVar12)" ( (binary_expression "__ptr[0xc] < uVar12" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) < identifier) ))))) ))) )) (compound_statement "{\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (if_statement "if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }" if (parenthesized_expression "(__ptr[7] == 1)" ( (binary_expression "__ptr[7] == 1" (subscript_expression "__ptr[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }" { (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" * (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" ( (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) ))))) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x85df3;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85df3" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr[6] = ~uVar5;" (assignment_expression "__ptr[6] = ~uVar5" (subscript_expression "__ptr[6]" identifier [ number_literal ]) = (unary_expression "~uVar5" ~ identifier)) ;) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" identifier = (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int *)pppuVar15 + -1)" ( (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) })) (if_statement "if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }" if (parenthesized_expression "(((int *)pppuVar15)[7] != 1)" ( (binary_expression "((int *)pppuVar15)[7] != 1" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) != number_literal) )) (compound_statement "{\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }" { (expression_statement "iVar9 = ((int *)pppuVar15)[7];" (assignment_expression "iVar9 = ((int *)pppuVar15)[7]" identifier = (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (goto_statement "goto LAB_00085af4;" goto statement_identifier ;) })) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;" if (parenthesized_expression "(((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf]))" ( (binary_expression "((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])" (parenthesized_expression "((__ptr[0xb] & __ptr[10]) != 0xffffffff)" ( (binary_expression "(__ptr[0xb] & __ptr[10]) != 0xffffffff" (parenthesized_expression "(__ptr[0xb] & __ptr[10])" ( (binary_expression "__ptr[0xb] & __ptr[10]" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) & (subscript_expression "__ptr[10]" identifier [ number_literal ])) )) != number_literal) )) && (parenthesized_expression "(__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])" ( (binary_expression "__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf]" (binary_expression "__ptr[0xb] != __ptr[0x10]" (subscript_expression "__ptr[0xb]" identifier [ number_literal ]) != (subscript_expression "__ptr[0x10]" identifier [ number_literal ])) || (binary_expression "__ptr[10] != __ptr[0xf]" (subscript_expression "__ptr[10]" identifier [ number_literal ]) != (subscript_expression "__ptr[0xf]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar5 = __ptr[0x11];" (assignment_expression "uVar5 = __ptr[0x11]" identifier = (subscript_expression "__ptr[0x11]" identifier [ number_literal ])) ;) (if_statement "if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;" if (parenthesized_expression "(((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5))" ( (binary_expression "((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)" (parenthesized_expression "((__ptr[0xd] & __ptr[0xc]) != 0xffffffff)" ( (binary_expression "(__ptr[0xd] & __ptr[0xc]) != 0xffffffff" (parenthesized_expression "(__ptr[0xd] & __ptr[0xc])" ( (binary_expression "__ptr[0xd] & __ptr[0xc]" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) & (subscript_expression "__ptr[0xc]" identifier [ number_literal ])) )) != number_literal) )) && (parenthesized_expression "(__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)" ( (binary_expression "__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5" (binary_expression "__ptr[0xd] != __ptr[0x12]" (subscript_expression "__ptr[0xd]" identifier [ number_literal ]) != (subscript_expression "__ptr[0x12]" identifier [ number_literal ])) || (binary_expression "__ptr[0xc] != uVar5" (subscript_expression "__ptr[0xc]" identifier [ number_literal ]) != identifier)) ))) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar12 = __ptr[0x15];" (assignment_expression "uVar12 = __ptr[0x15]" identifier = (subscript_expression "__ptr[0x15]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = __ptr[0xf] + __ptr[0x15];" (assignment_expression "uVar10 = __ptr[0xf] + __ptr[0x15]" identifier = (binary_expression "__ptr[0xf] + __ptr[0x15]" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) + (subscript_expression "__ptr[0x15]" identifier [ number_literal ]))) ;) (expression_statement "uVar8 = __ptr[0xe] + uVar10;" (assignment_expression "uVar8 = __ptr[0xe] + uVar10" identifier = (binary_expression "__ptr[0xe] + uVar10" (subscript_expression "__ptr[0xe]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);" (assignment_expression "bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" identifier = (pointer_expression "*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" * (cast_expression "(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (binary_expression "(int)*pppuVar15 + -0x15628 + __ptr[7]" (binary_expression "(int)*pppuVar15 + -0x15628" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) + (subscript_expression "__ptr[7]" identifier [ number_literal ])) ))))) ;) (expression_statement "__ptr[0x15] = uVar8 + bVar19;" (assignment_expression "__ptr[0x15] = uVar8 + bVar19" (subscript_expression "__ptr[0x15]" identifier [ number_literal ]) = (binary_expression "uVar8 + bVar19" identifier + identifier)) ;) (expression_statement "__ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);" (assignment_expression "__ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19)" (subscript_expression "__ptr[0x16]" identifier [ number_literal ]) = (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19)" (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10)" (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12)" (binary_expression "__ptr[0x10] + __ptr[0x16]" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) + (subscript_expression "__ptr[0x16]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(__ptr[0xf],uVar12)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(__ptr[0xf],uVar12)" identifier (argument_list "(__ptr[0xf],uVar12)" ( (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) , identifier ))))) + (cast_expression "(uint)CARRY4(__ptr[0xe],uVar10)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(__ptr[0xe],uVar10)" identifier (argument_list "(__ptr[0xe],uVar10)" ( (subscript_expression "__ptr[0xe]" identifier [ number_literal ]) , identifier ))))) + (cast_expression "(uint)CARRY4(uVar8,(uint)bVar19)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar8,(uint)bVar19)" identifier (argument_list "(uVar8,(uint)bVar19)" ( identifier , (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) )))))) ;) (expression_statement "puVar1 = __ptr + 0x17;" (assignment_expression "puVar1 = __ptr + 0x17" identifier = (binary_expression "__ptr + 0x17" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar1;" (assignment_expression "uVar12 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + uVar5;" (assignment_expression "*puVar1 = *puVar1 + uVar5" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + uVar5" (pointer_expression "*puVar1" * identifier) + identifier)) ;) (expression_statement "__ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);" (assignment_expression "__ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5)" (subscript_expression "__ptr[0x18]" identifier [ number_literal ]) = (binary_expression "__ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5)" (binary_expression "__ptr[0x18] + __ptr[0x12]" (subscript_expression "__ptr[0x18]" identifier [ number_literal ]) + (subscript_expression "__ptr[0x12]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar12,uVar5)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar12,uVar5)" identifier (argument_list "(uVar12,uVar5)" ( identifier , identifier )))))) ;) (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" * (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" ( (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) ))))) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x85e83;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85e83" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr[0x19] = ~uVar5;" (assignment_expression "__ptr[0x19] = ~uVar5" (subscript_expression "__ptr[0x19]" identifier [ number_literal ]) = (unary_expression "~uVar5" ~ identifier)) ;) (expression_statement "puVar1 = __ptr + 0x13;" (assignment_expression "puVar1 = __ptr + 0x13" identifier = (binary_expression "__ptr + 0x13" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + 1;" (assignment_expression "*puVar1 = *puVar1 + 1" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + 1" (pointer_expression "*puVar1" * identifier) + number_literal)) ;) (expression_statement "__ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);" (assignment_expression "__ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5)" (subscript_expression "__ptr[0x14]" identifier [ number_literal ]) = (binary_expression "__ptr[0x14] + (uint)(0xfffffffe < uVar5)" (subscript_expression "__ptr[0x14]" identifier [ number_literal ]) + (call_expression "(uint)(0xfffffffe < uVar5)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffe < uVar5)" ( (binary_expression "0xfffffffe < uVar5" number_literal < identifier) ))))) ;) (expression_statement "*__ptr = 4;" (assignment_expression "*__ptr = 4" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" identifier = (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int *)pppuVar15 + -1)" ( (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (labeled_statement "switchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];" statement_identifier : (expression_statement "uVar12 = __ptr[0xf];" (assignment_expression "uVar12 = __ptr[0xf]" identifier = (subscript_expression "__ptr[0xf]" identifier [ number_literal ])) ;)) (expression_statement "uVar8 = __ptr[0x10];" (assignment_expression "uVar8 = __ptr[0x10]" identifier = (subscript_expression "__ptr[0x10]" identifier [ number_literal ])) ;) (if_statement "if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }" if (parenthesized_expression "((uVar12 & 3) != 0)" ( (binary_expression "(uVar12 & 3) != 0" (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }" { (expression_statement "uVar10 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar10 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x3c);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x3c)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x3c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x3c)" ( (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar10 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar10 == uVar5)" ( (binary_expression "uVar10 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x34);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x34)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" * (cast_expression "(int *)((int)pppuVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x34)" ( (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar11 = uVar10 + 1;" (assignment_expression "uVar11 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar11;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar11" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;" if (parenthesized_expression "(*(char *)(iVar9 + uVar10) != '\0')" ( (binary_expression "*(char *)(iVar9 + uVar10) != '\0'" (pointer_expression "*(char *)(iVar9 + uVar10)" * (cast_expression "(char *)(iVar9 + uVar10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar10)" ( (binary_expression "iVar9 + uVar10" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar8 + (0xfffffffe < uVar12);" (assignment_expression "uVar8 = uVar8 + (0xfffffffe < uVar12)" identifier = (binary_expression "uVar8 + (0xfffffffe < uVar12)" identifier + (parenthesized_expression "(0xfffffffe < uVar12)" ( (binary_expression "0xfffffffe < uVar12" number_literal < identifier) )))) ;) (while_statement "while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }" { (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "__ptr[0xf] = uVar12;" (assignment_expression "__ptr[0xf] = uVar12" (subscript_expression "__ptr[0xf]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x10] = uVar8;" (assignment_expression "__ptr[0x10] = uVar8" (subscript_expression "__ptr[0x10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((uVar12 & 3) == 0) break;" if (parenthesized_expression "((uVar12 & 3) == 0)" ( (binary_expression "(uVar12 & 3) == 0" (parenthesized_expression "(uVar12 & 3)" ( (binary_expression "uVar12 & 3" identifier & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (if_statement "if (uVar11 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar11 == uVar5)" ( (binary_expression "uVar11 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar11;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar11" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "uVar8 = uVar8 + (0xfffffffe < uVar12);" (assignment_expression "uVar8 = uVar8 + (0xfffffffe < uVar12)" identifier = (binary_expression "uVar8 + (0xfffffffe < uVar12)" identifier + (parenthesized_expression "(0xfffffffe < uVar12)" ( (binary_expression "0xfffffffe < uVar12" number_literal < identifier) )))) ;) (if_statement "if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;" if (parenthesized_expression "(*(char *)(iVar9 + -1 + uVar11) != '\0')" ( (binary_expression "*(char *)(iVar9 + -1 + uVar11) != '\0'" (pointer_expression "*(char *)(iVar9 + -1 + uVar11)" * (cast_expression "(char *)(iVar9 + -1 + uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + uVar11)" ( (binary_expression "iVar9 + -1 + uVar11" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) })) })) (expression_statement "*__ptr = 5;" (assignment_expression "*__ptr = 5" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" statement_identifier : (if_statement "if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" if (parenthesized_expression "(__ptr[7] == 1)" ( (binary_expression "__ptr[7] == 1" (subscript_expression "__ptr[7]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }" { (expression_statement "uVar12 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar12 = ((int *)pppuVar15)[0xf]" identifier = (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "iVar9 = ((int *)pppuVar15)[0xd];" (assignment_expression "iVar9 = ((int *)pppuVar15)[0xd]" identifier = (subscript_expression "((int *)pppuVar15)[0xd]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = ((int *)pppuVar15)[0xe];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xe]" identifier = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (if_statement "if (uVar12 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar12 == uVar5)" ( (binary_expression "uVar12 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar10 = __ptr[6];" (assignment_expression "uVar10 = __ptr[6]" identifier = (subscript_expression "__ptr[6]" identifier [ number_literal ])) ;) (expression_statement "((int *)pppuVar15)[7] = uVar10;" (assignment_expression "((int *)pppuVar15)[7] = uVar10" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = __ptr[1];" (assignment_expression "uVar11 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar5 + 1;" (assignment_expression "uVar8 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "((int *)pppuVar15)[0xe] = uVar8;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar8" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;" if (parenthesized_expression "(*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f))" (pointer_expression "*(char *)(iVar9 + uVar5)" * (cast_expression "(char *)(iVar9 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar5)" ( (binary_expression "iVar9 + uVar5" identifier + identifier) )))) != (cast_expression "(char)(uVar10 >> ((byte)uVar11 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar10 >> ((byte)uVar11 & 0x1f))" ( (binary_expression "uVar10 >> ((byte)uVar11 & 0x1f)" identifier >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar11 + 8;" (assignment_expression "uVar11 = uVar11 + 8" identifier = (binary_expression "uVar11 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar11;" (assignment_expression "__ptr[1] = uVar11" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) (while_statement "while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }" while (parenthesized_expression "(uVar11 < 0x20)" ( (binary_expression "uVar11 < 0x20" identifier < number_literal) )) (compound_statement "{\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }" { (expression_statement "uVar5 = uVar12;" (assignment_expression "uVar5 = uVar12" identifier = identifier) ;) (if_statement "if (uVar12 == uVar8) goto LAB_000858bd;" if (parenthesized_expression "(uVar12 == uVar8)" ( (binary_expression "uVar12 == uVar8" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar11 = __ptr[1];" (assignment_expression "uVar11 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "((int *)pppuVar15)[0xe] = uVar8;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar8" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (if_statement "if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;" if (parenthesized_expression "(*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" (pointer_expression "*(char *)(iVar9 + -1 + uVar8)" * (cast_expression "(char *)(iVar9 + -1 + uVar8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + uVar8)" ( (binary_expression "iVar9 + -1 + uVar8" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) )))) != (cast_expression "(char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" ( (binary_expression "(uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f)" (subscript_expression "(uint)((int *)pppuVar15)[7]" (call_expression "(uint)((int *)pppuVar15)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) [ number_literal ]) >> (parenthesized_expression "((byte)uVar11 & 0x1f)" ( (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar11 + 8;" (assignment_expression "uVar11 = uVar11 + 8" identifier = (binary_expression "uVar11 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar11;" (assignment_expression "__ptr[1] = uVar11" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "__ptr[6] = 0;" (assignment_expression "__ptr[6] = 0" (subscript_expression "__ptr[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" else (compound_statement "{\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" { (expression_statement "uVar12 = __ptr[1];" (assignment_expression "uVar12 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);" (assignment_expression "uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" identifier = (binary_expression "(uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*pppuVar15 + -0x15628 + __ptr[7])" ( (binary_expression "(int)*pppuVar15 + -0x15628 + __ptr[7]" (binary_expression "(int)*pppuVar15 + -0x15628" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal) + (subscript_expression "__ptr[7]" identifier [ number_literal ])) ))))) ;) (if_statement "if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }" if (parenthesized_expression "(uVar12 < uVar8)" ( (binary_expression "uVar12 < uVar8" identifier < identifier) )) (compound_statement "{\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }" { (expression_statement "uVar10 = ((int *)pppuVar15)[0xe];" (assignment_expression "uVar10 = ((int *)pppuVar15)[0xe]" identifier = (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (expression_statement "uVar5 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xf]" identifier = (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ])) ;) (if_statement "if (uVar10 == uVar5) goto LAB_000858bd;" if (parenthesized_expression "(uVar10 == uVar5)" ( (binary_expression "uVar10 == uVar5" identifier == identifier) )) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" identifier = identifier) ;) (while_statement "while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }" { (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (if_statement "if (uVar11 == (uVar10 - uVar12) + uVar8) break;" if (parenthesized_expression "(uVar11 == (uVar10 - uVar12) + uVar8)" ( (binary_expression "uVar11 == (uVar10 - uVar12) + uVar8" identifier == (binary_expression "(uVar10 - uVar12) + uVar8" (parenthesized_expression "(uVar10 - uVar12)" ( (binary_expression "uVar10 - uVar12" identifier - identifier) )) + identifier)) )) (break_statement "break;" break ;)) (if_statement "if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }" if (parenthesized_expression "(uVar11 == uVar5)" ( (binary_expression "uVar11 == uVar5" identifier == identifier) )) (compound_statement "{\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }" { (expression_statement "((int *)pppuVar15)[0xe] = uVar5;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar5" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "__ptr[1] = (uVar11 - uVar10) + uVar12;" (assignment_expression "__ptr[1] = (uVar11 - uVar10) + uVar12" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = (binary_expression "(uVar11 - uVar10) + uVar12" (parenthesized_expression "(uVar11 - uVar10)" ( (binary_expression "uVar11 - uVar10" identifier - identifier) )) + identifier)) ;) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;) })) })) (expression_statement "((int *)pppuVar15)[0xe] = uVar11;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar11" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) })) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = number_literal) ;) })))) (expression_statement "*__ptr = 1;" (assignment_expression "*__ptr = 1" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000856cf;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x85d53:\n      goto switchD_000856db_caseD_85d53;" case number_literal : (goto_statement "goto switchD_000856db_caseD_85d53;" goto statement_identifier ;)) (case_statement "case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;" case number_literal : (goto_statement "goto switchD_000856db_caseD_85e9a;" goto statement_identifier ;)) (case_statement "case 0x85eea:\n      goto switchD_000856db_caseD_85eea;" case number_literal : (goto_statement "goto switchD_000856db_caseD_85eea;" goto statement_identifier ;)) })) (labeled_statement "LAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);" statement_identifier : (expression_statement "iVar7 = *(int *)((int)piVar16 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)piVar16 + 0x44)" identifier = (pointer_expression "*(int *)((int)piVar16 + 0x44)" * (cast_expression "(int *)((int)piVar16 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x44)" ( (binary_expression "(int)piVar16 + 0x44" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" identifier = (cast_expression "(undefined ***)piVar16" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (goto_statement "goto LAB_00085a3d;" goto statement_identifier ;) })) (expression_statement "((int *)pppuVar15)[-1] = 0x855cf;" (assignment_expression "((int *)pppuVar15)[-1] = 0x855cf" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_0001b3fd();" (assignment_expression "uVar5 = FUN_0001b3fd()" identifier = (call_expression "FUN_0001b3fd()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }" { (expression_statement "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;" (assignment_expression "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (binary_expression "(int)*pppuVar15 + -0x515c" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal)) ;) (expression_statement "((int *)pppuVar15)[-5] = 0x855ea;" (assignment_expression "((int *)pppuVar15)[-5] = 0x855ea" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0001930a();" (call_expression "FUN_0001930a()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)pppuVar15)[4] = -1;" (assignment_expression "((int *)pppuVar15)[4] = -1" (subscript_expression "((int *)pppuVar15)[4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "((int *)pppuVar15)[5] = -1;" (assignment_expression "((int *)pppuVar15)[5] = -1" (subscript_expression "((int *)pppuVar15)[5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) }) (else_clause "else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" else (if_statement "if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" if (parenthesized_expression "((uVar5 != 0) || (iVar9 != 1))" ( (binary_expression "(uVar5 != 0) || (iVar9 != 1)" (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) ))) )) (compound_statement "{\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" { (expression_statement "((int *)pppuVar15)[0xf] = uVar5;" (assignment_expression "((int *)pppuVar15)[0xf] = uVar5" (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = identifier) ;) (expression_statement "((int *)pppuVar15)[0xe] = 0;" (assignment_expression "((int *)pppuVar15)[0xe] = 0" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "((int *)pppuVar15)[1] = 0;" (assignment_expression "((int *)pppuVar15)[1] = 0" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_00085687;" goto statement_identifier ;) })))) (if_statement "if (__ptr == (uint *)0x0) goto LAB_0008562b;" if (parenthesized_expression "(__ptr == (uint *)0x0)" ( (binary_expression "__ptr == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0008562b;" goto statement_identifier ;)) (goto_statement "goto LAB_00085601;" goto statement_identifier ;) (labeled_statement "switchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;" statement_identifier : (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (do_statement "do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);" do (compound_statement "{\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  }" { (expression_statement "*(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c)" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x10)" ( (binary_expression "(int)piVar13 + -0x10" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)piVar13 + 0x3c)" * (cast_expression "(undefined4 *)((int)piVar13 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 0x3c)" ( (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x14) = 0x8573a" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x14)" ( (binary_expression "(int)piVar13 + -0x14" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" identifier = (call_expression "FUN_00084b26()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }" if (parenthesized_expression "(iVar9 != 1)" ( (binary_expression "iVar9 != 1" identifier != number_literal) )) (compound_statement "{\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }" { (expression_statement "*(undefined4 *)((int)piVar13 + -8) = 0x85af4;" (assignment_expression "*(undefined4 *)((int)piVar13 + -8) = 0x85af4" (pointer_expression "*(undefined4 *)((int)piVar13 + -8)" * (cast_expression "(undefined4 *)((int)piVar13 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -8)" ( (binary_expression "(int)piVar13 + -8" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00084c19();" (call_expression "FUN_00084c19()" identifier (argument_list "()" ( ))) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;" statement_identifier : (if_statement "if (iVar9 == 0) goto LAB_000858b9;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000858b9;" goto statement_identifier ;))) (goto_statement "goto LAB_00085807;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[0x1a];" (assignment_expression "uVar5 = __ptr[0x1a]" identifier = (subscript_expression "__ptr[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" if (parenthesized_expression "(uVar5 == 1)" ( (binary_expression "uVar5 == 1" identifier == number_literal) )) (compound_statement "{\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }" { (expression_statement "puVar1 = __ptr + 0x1f;" (assignment_expression "puVar1 = __ptr + 0x1f" identifier = (binary_expression "__ptr + 0x1f" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + __ptr[2];" (assignment_expression "*puVar1 = *puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) + (subscript_expression "__ptr[2]" identifier [ number_literal ]))) ;) (expression_statement "__ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);" (assignment_expression "__ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (subscript_expression "__ptr[0x20]" identifier [ number_literal ]) = (binary_expression "__ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (binary_expression "__ptr[0x20] + __ptr[3]" (subscript_expression "__ptr[0x20]" identifier [ number_literal ]) + (subscript_expression "__ptr[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar5,__ptr[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,__ptr[2])" identifier (argument_list "(uVar5,__ptr[2])" ( identifier , (subscript_expression "__ptr[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "__ptr[0x1a] = 2;" (assignment_expression "__ptr[0x1a] = 2" (subscript_expression "__ptr[0x1a]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00085768:\n      uVar5 = __ptr[0x1d];" statement_identifier : (expression_statement "uVar5 = __ptr[0x1d];" (assignment_expression "uVar5 = __ptr[0x1d]" identifier = (subscript_expression "__ptr[0x1d]" identifier [ number_literal ])) ;)) (expression_statement "uVar12 = __ptr[0x1e];" (assignment_expression "uVar12 = __ptr[0x1e]" identifier = (subscript_expression "__ptr[0x1e]" identifier [ number_literal ])) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) (else_clause "else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" else (compound_statement "{\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" { (if_statement "if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }" { (if_statement "if (uVar5 != 2) goto LAB_00085768;" if (parenthesized_expression "(uVar5 != 2)" ( (binary_expression "uVar5 != 2" identifier != number_literal) )) (goto_statement "goto LAB_00085768;" goto statement_identifier ;)) (expression_statement "puVar1 = __ptr + 0x21;" (assignment_expression "puVar1 = __ptr + 0x21" identifier = (binary_expression "__ptr + 0x21" identifier + number_literal)) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + __ptr[2];" (assignment_expression "*puVar1 = *puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + __ptr[2]" (pointer_expression "*puVar1" * identifier) + (subscript_expression "__ptr[2]" identifier [ number_literal ]))) ;) (expression_statement "__ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);" (assignment_expression "__ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (subscript_expression "__ptr[0x22]" identifier [ number_literal ]) = (binary_expression "__ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (binary_expression "__ptr[0x22] + __ptr[3]" (subscript_expression "__ptr[0x22]" identifier [ number_literal ]) + (subscript_expression "__ptr[3]" identifier [ number_literal ])) + (cast_expression "(uint)CARRY4(uVar5,__ptr[2])" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,__ptr[2])" identifier (argument_list "(uVar5,__ptr[2])" ( identifier , (subscript_expression "__ptr[2]" identifier [ number_literal ]) )))))) ;) (expression_statement "*(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x14)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x14)" ( (binary_expression "(int)piVar13 + -0x14" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" * (cast_expression "(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)piVar13 + -4) + 0xcf8)" ( (binary_expression "*(int *)((int)piVar13 + -4) + 0xcf8" (pointer_expression "*(int *)((int)piVar13 + -4)" * (cast_expression "(int *)((int)piVar13 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x18) = 0x85a94" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x18)" * (cast_expression "(undefined4 *)((int)piVar13 + -0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -0x18)" ( (binary_expression "(int)piVar13 + -0x18" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "__ptr[0x23] = ~uVar5;" (assignment_expression "__ptr[0x23] = ~uVar5" (subscript_expression "__ptr[0x23]" identifier [ number_literal ]) = (unary_expression "~uVar5" ~ identifier)) ;) (expression_statement "uVar5 = __ptr[0x1d] - 1;" (assignment_expression "uVar5 = __ptr[0x1d] - 1" identifier = (binary_expression "__ptr[0x1d] - 1" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) - number_literal)) ;) (expression_statement "uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);" (assignment_expression "uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0)" identifier = (binary_expression "(__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0)" (parenthesized_expression "(__ptr[0x1e] - 1)" ( (binary_expression "__ptr[0x1e] - 1" (subscript_expression "__ptr[0x1e]" identifier [ number_literal ]) - number_literal) )) + (call_expression "(uint)(__ptr[0x1d] != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__ptr[0x1d] != 0)" ( (binary_expression "__ptr[0x1d] != 0" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) != number_literal) ))))) ;) (expression_statement "__ptr[0x1d] = uVar5;" (assignment_expression "__ptr[0x1d] = uVar5" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x1e] = uVar12;" (assignment_expression "__ptr[0x1e] = uVar12" (subscript_expression "__ptr[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x1a] = 1;" (assignment_expression "__ptr[0x1a] = 1" (subscript_expression "__ptr[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -8);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -8)" identifier = (cast_expression "(undefined ***)((int)piVar13 + -8)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)piVar13 + -8)" ( (binary_expression "(int)piVar13 + -8" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_0008576e;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[2];" (assignment_expression "uVar5 = __ptr[2]" identifier = (subscript_expression "__ptr[2]" identifier [ number_literal ])) ;) (expression_statement "uVar12 = __ptr[3];" (assignment_expression "uVar12 = __ptr[3]" identifier = (subscript_expression "__ptr[3]" identifier [ number_literal ])) ;) (expression_statement "__ptr[0x1d] = uVar5;" (assignment_expression "__ptr[0x1d] = uVar5" (subscript_expression "__ptr[0x1d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__ptr[0x1e] = uVar12;" (assignment_expression "__ptr[0x1e] = uVar12" (subscript_expression "__ptr[0x1e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + -4);" (assignment_expression "piVar13 = (int *)((int)piVar13 + -4)" identifier = (cast_expression "(int *)((int)piVar13 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -4)" ( (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;" if (parenthesized_expression "(__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5)" ( (binary_expression "__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5" (binary_expression "__ptr[0x14] != uVar12" (subscript_expression "__ptr[0x14]" identifier [ number_literal ]) != identifier) || (binary_expression "__ptr[0x13] != uVar5" (subscript_expression "__ptr[0x13]" identifier [ number_literal ]) != identifier)) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "__ptr[0x1a] = 1;" (assignment_expression "__ptr[0x1a] = 1" (subscript_expression "__ptr[0x1a]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0008576e:\n    piVar13 = (int *)pppuVar15;" statement_identifier : (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) }) while (parenthesized_expression "(uVar12 != 0 || uVar5 != 0)" ( (binary_expression "uVar12 != 0 || uVar5 != 0" (binary_expression "uVar12 != 0" identifier != number_literal) || (binary_expression "uVar5 != 0" identifier != number_literal)) )) ;) (expression_statement "*__ptr = 7;" (assignment_expression "*__ptr = 7" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];" statement_identifier : (expression_statement "uVar5 = __ptr[0x1b];" (assignment_expression "uVar5 = __ptr[0x1b]" identifier = (subscript_expression "__ptr[0x1b]" identifier [ number_literal ])) ;)) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1" identifier = (binary_expression "*(int *)((int)pppuVar15 + 0x38) + 1" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" * (cast_expression "(int *)((int)pppuVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "uVar12 = __ptr[4];" (assignment_expression "uVar12 = __ptr[4]" identifier = (subscript_expression "__ptr[4]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" statement_identifier : (if_statement "if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" if (parenthesized_expression "((~uVar12 + iVar9 + uVar5 & 3) == 0)" ( (binary_expression "(~uVar12 + iVar9 + uVar5 & 3) == 0" (parenthesized_expression "(~uVar12 + iVar9 + uVar5 & 3)" ( (binary_expression "~uVar12 + iVar9 + uVar5 & 3" (binary_expression "~uVar12 + iVar9 + uVar5" (binary_expression "~uVar12 + iVar9" (unary_expression "~uVar12" ~ identifier) + identifier) + identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }" { (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x857ae" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar6 = FUN_00084c19();" (assignment_expression "uVar6 = FUN_00084c19()" identifier = (call_expression "FUN_00084c19()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = uVar6;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = uVar6" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -8) = 0x14;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -8) = 0x14" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -8)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -8)" ( (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;" (assignment_expression "*(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f" (pointer_expression "*(uint **)((int)pppuVar15 + -0xc)" * (cast_expression "(uint **)((int)pppuVar15 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0xc)" ( (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "__ptr + 0x1f" identifier + number_literal)) ;) (expression_statement "*(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;" (assignment_expression "*(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15" (pointer_expression "*(uint **)((int)pppuVar15 + -0x10)" * (cast_expression "(uint **)((int)pppuVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "__ptr + 0x15" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "iVar9 = FUN_00016390();" (assignment_expression "iVar9 = FUN_00016390()" identifier = (call_expression "FUN_00016390()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar9 != 0) goto LAB_000858fc;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000858fc;" goto statement_identifier ;)) (expression_statement "*__ptr = 8;" (assignment_expression "*__ptr = 8" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);" statement_identifier : (expression_statement "uVar12 = *(uint *)((int)pppuVar15 + 0x3c);" (assignment_expression "uVar12 = *(uint *)((int)pppuVar15 + 0x3c)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x3c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x3c)" ( (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x34);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x34)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" * (cast_expression "(int *)((int)pppuVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x34)" ( (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }" if (parenthesized_expression "(uVar12 != uVar5)" ( (binary_expression "uVar12 != uVar5" identifier != identifier) )) (compound_statement "{\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }" { (expression_statement "uVar8 = __ptr[6];" (assignment_expression "uVar8 = __ptr[6]" identifier = (subscript_expression "__ptr[6]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = __ptr[1];" (assignment_expression "uVar10 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1" (pointer_expression "*(uint *)((int)pppuVar15 + 0x24)" * (cast_expression "(uint *)((int)pppuVar15 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x24)" ( (binary_expression "(int)pppuVar15 + 0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }" if (parenthesized_expression "(*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))" (pointer_expression "*(char *)(iVar9 + uVar5)" * (cast_expression "(char *)(iVar9 + uVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + uVar5)" ( (binary_expression "iVar9 + uVar5" identifier + identifier) )))) != (cast_expression "(char)(uVar8 >> ((byte)uVar10 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar8 >> ((byte)uVar10 & 0x1f))" ( (binary_expression "uVar8 >> ((byte)uVar10 & 0x1f)" identifier >> (parenthesized_expression "((byte)uVar10 & 0x1f)" ( (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (compound_statement "{\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }" { (labeled_statement "LAB_00085802:\n        iVar9 = 7;" statement_identifier : (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;)) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (labeled_statement "LAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x44)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto joined_r0x00085811;" goto statement_identifier ;) })) (expression_statement "uVar10 = uVar10 + 8;" (assignment_expression "uVar10 = uVar10 + 8" identifier = (binary_expression "uVar10 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar10;" (assignment_expression "__ptr[1] = uVar10" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }" if (parenthesized_expression "(uVar10 < 0x20)" ( (binary_expression "uVar10 < 0x20" identifier < number_literal) )) (compound_statement "{\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }" { (expression_statement "*(uint *)((int)pppuVar15 + 0x1c) = uVar12;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x1c) = uVar12" (pointer_expression "*(uint *)((int)pppuVar15 + 0x1c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x1c)" ( (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x24);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x24)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x24)" * (cast_expression "(int *)((int)pppuVar15 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x24)" ( (binary_expression "(int)pppuVar15 + 0x24" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (do_statement "do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);" do (compound_statement "{\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        }" { (if_statement "if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x1c) == iVar7)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x1c) == iVar7" (pointer_expression "*(int *)((int)pppuVar15 + 0x1c)" * (cast_expression "(int *)((int)pppuVar15 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x1c)" ( (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }" { (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x1c);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x1c)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x1c)" * (cast_expression "(uint *)((int)pppuVar15 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x1c)" ( (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;) })) (expression_statement "uVar5 = __ptr[1];" (assignment_expression "uVar5 = __ptr[1]" identifier = (subscript_expression "__ptr[1]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*(int *)((int)pppuVar15 + 0x38) = iVar7;" (assignment_expression "*(int *)((int)pppuVar15 + 0x38) = iVar7" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" * (cast_expression "(int *)((int)pppuVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (if_statement "if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;" if (parenthesized_expression "(*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))" ( (binary_expression "*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f))" (pointer_expression "*(char *)(iVar9 + -1 + iVar7)" * (cast_expression "(char *)(iVar9 + -1 + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + -1 + iVar7)" ( (binary_expression "iVar9 + -1 + iVar7" (binary_expression "iVar9 + -1" identifier + number_literal) + identifier) )))) != (cast_expression "(char)(uVar8 >> ((byte)uVar5 & 0x1f))" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar8 >> ((byte)uVar5 & 0x1f))" ( (binary_expression "uVar8 >> ((byte)uVar5 & 0x1f)" identifier >> (parenthesized_expression "((byte)uVar5 & 0x1f)" ( (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) )))) )) (goto_statement "goto LAB_00085802;" goto statement_identifier ;)) (expression_statement "uVar5 = uVar5 + 8;" (assignment_expression "uVar5 = uVar5 + 8" identifier = (binary_expression "uVar5 + 8" identifier + number_literal)) ;) (expression_statement "__ptr[1] = uVar5;" (assignment_expression "__ptr[1] = uVar5" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = identifier) ;) }) while (parenthesized_expression "(uVar5 < 0x20)" ( (binary_expression "uVar5 < 0x20" identifier < number_literal) )) ;) })) (expression_statement "__ptr[6] = 0;" (assignment_expression "__ptr[6] = 0" (subscript_expression "__ptr[6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "__ptr[0x25] = 0xc;" (assignment_expression "__ptr[0x25] = 0xc" (subscript_expression "__ptr[0x25]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*__ptr = 9;" (assignment_expression "*__ptr = 9" (pointer_expression "*__ptr" * identifier) = number_literal) ;) (labeled_statement "switchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;" statement_identifier : (expression_statement "piVar13[-1] = 0x858b5;" (assignment_expression "piVar13[-1] = 0x858b5" (subscript_expression "piVar13[-1]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" identifier = (call_expression "FUN_0008543e()" identifier (argument_list "()" ( )))) ;) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" identifier = (cast_expression "(undefined ***)piVar13" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (if_statement "if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }" { (labeled_statement "LAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);" statement_identifier : (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (goto_statement "goto LAB_000858bd;" goto statement_identifier ;) })) (expression_statement "piVar16 = piVar13;" (assignment_expression "piVar16 = piVar13" identifier = identifier) ;) (if_statement "if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }" if (parenthesized_expression "(*(short *)((int)__ptr + 0xa2) == 0x5a59)" ( (binary_expression "*(short *)((int)__ptr + 0xa2) == 0x5a59" (pointer_expression "*(short *)((int)__ptr + 0xa2)" * (cast_expression "(short *)((int)__ptr + 0xa2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0xa2)" ( (binary_expression "(int)__ptr + 0xa2" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (compound_statement "{\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }" { (expression_statement "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);" (assignment_expression "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8)" (subscript_expression "piVar13[-4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(*piVar13 + 0xcf8)" * (cast_expression "(undefined4 *)(*piVar13 + 0xcf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar13 + 0xcf8)" ( (binary_expression "*piVar13 + 0xcf8" (pointer_expression "*piVar13" * identifier) + number_literal) ))))) ;) (expression_statement "piVar13[-5] = 0x85938;" (assignment_expression "piVar13[-5] = 0x85938" (subscript_expression "piVar13[-5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" identifier = (call_expression "FUN_000af9bf()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar14 = piVar13 + -1;" (assignment_expression "piVar14 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" identifier = (binary_expression "piVar13 + -1" identifier + number_literal)) ;) (if_statement "if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;" if (parenthesized_expression "(~uVar5 != __ptr[0x26])" ( (binary_expression "~uVar5 != __ptr[0x26]" (unary_expression "~uVar5" ~ identifier) != (subscript_expression "__ptr[0x26]" identifier [ number_literal ])) )) (goto_statement "goto LAB_000858fc;" goto statement_identifier ;)) (expression_statement "iVar9 = piVar13[0x10];" (assignment_expression "iVar9 = piVar13[0x10]" identifier = (subscript_expression "piVar13[0x10]" identifier [ number_literal ])) ;) (if_statement "if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }" if (parenthesized_expression "(((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7]))" ( (binary_expression "((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])" (parenthesized_expression "((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0'))" ( (binary_expression "(__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')" (parenthesized_expression "(__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e))" ( (binary_expression "__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" (binary_expression "__ptr[0x1c] >> 2 != 0" (binary_expression "__ptr[0x1c] >> 2" (subscript_expression "__ptr[0x1c]" identifier [ number_literal ]) >> number_literal) != number_literal) || (binary_expression "__ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" (subscript_expression "__ptr[0x27]" identifier [ number_literal ]) != (parenthesized_expression "(__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" ( (binary_expression "__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e" (binary_expression "__ptr[0x1b] >> 2" (subscript_expression "__ptr[0x1b]" identifier [ number_literal ]) >> number_literal) | (binary_expression "__ptr[0x1c] << 0x1e" (subscript_expression "__ptr[0x1c]" identifier [ number_literal ]) << number_literal)) )))) )) || (parenthesized_expression "((char)__ptr[0x28] != '\0')" ( (binary_expression "(char)__ptr[0x28] != '\0'" (cast_expression "(char)__ptr[0x28]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "__ptr[0x28]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])" ( (binary_expression "(uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7]" (binary_expression "(uint)*(byte *)((int)__ptr + 0xa1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)__ptr + 0xa1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)__ptr + 0xa1)" ( (binary_expression "(int)__ptr + 0xa1" (cast_expression "(int)__ptr" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (subscript_expression "__ptr[7]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }" { (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }" { (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (goto_statement "goto LAB_00085820;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }" { (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" identifier = (cast_expression "(undefined ***)(piVar13 + -1)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar13 + -1)" ( (binary_expression "piVar13 + -1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (goto_statement "goto LAB_000859c3;" goto statement_identifier ;) })) (labeled_statement "LAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;" statement_identifier : (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" identifier = (cast_expression "(undefined ***)piVar16" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;)) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x44) == 0)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x44) == 0" (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00085820;" goto statement_identifier ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" else (compound_statement "{\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" { (if_statement "if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9" (binary_expression "*(int *)((int)pppuVar15 + 0x3c) + 1" (pointer_expression "*(int *)((int)pppuVar15 + 0x3c)" * (cast_expression "(int *)((int)pppuVar15 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x3c)" ( (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) != identifier) )) (goto_statement "goto LAB_00085a24;" goto statement_identifier ;)) (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00084c19();" (call_expression "FUN_00084c19()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) })))) (labeled_statement "LAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);" statement_identifier : (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x44)" identifier = (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" * (cast_expression "(int *)((int)pppuVar15 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (if_statement "if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }" if (parenthesized_expression "((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9))" ( (binary_expression "(uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)" (parenthesized_expression "(uVar5 == *(uint *)((int)pppuVar15 + 4))" ( (binary_expression "uVar5 == *(uint *)((int)pppuVar15 + 4)" identifier == (pointer_expression "*(uint *)((int)pppuVar15 + 4)" * (cast_expression "(uint *)((int)pppuVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 4)" ( (binary_expression "(int)pppuVar15 + 4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) && (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x20) == iVar9)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x20) == iVar9" (pointer_expression "*(int *)((int)pppuVar15 + 0x20)" * (cast_expression "(int *)((int)pppuVar15 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x20)" ( (binary_expression "(int)pppuVar15 + 0x20" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == identifier) ))) )) (compound_statement "{\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }" { (if_statement "if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }" if (parenthesized_expression "((char)__ptr[9] == '\0')" ( (binary_expression "(char)__ptr[9] == '\0'" (cast_expression "(char)__ptr[9]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "__ptr[9]" identifier [ number_literal ])) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }" { (expression_statement "*(undefined1 *)(__ptr + 9) = 1;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 1" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 == 0) goto LAB_000859cc;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (if_statement "if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar9 = 8;\n      goto LAB_00085999;\n    }" { (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (goto_statement "goto LAB_00085820;" goto statement_identifier ;) })) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar9 = 0;\n    goto LAB_00085999;\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00085999;" goto statement_identifier ;) })) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;) (labeled_statement "LAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;" statement_identifier : (expression_statement "*(int *)((int)pppuVar15 + 0x38) = iVar9;" (assignment_expression "*(int *)((int)pppuVar15 + 0x38) = iVar9" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" * (cast_expression "(int *)((int)pppuVar15 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;" if (parenthesized_expression "(*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0')" ( (binary_expression "*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0'" (pointer_expression "*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" * (cast_expression "(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" ( (binary_expression "*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9" (binary_expression "*(int *)((int)pppuVar15 + 0x34) + -2" (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" * (cast_expression "(int *)((int)pppuVar15 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x34)" ( (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00085a34;" goto statement_identifier ;)) (goto_statement "goto LAB_00085795;" goto statement_identifier ;) (labeled_statement "LAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);" statement_identifier : (expression_statement "iVar7 = *(int *)((int)piVar16 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)piVar16 + 0x44)" identifier = (pointer_expression "*(int *)((int)piVar16 + 0x44)" * (cast_expression "(int *)((int)piVar16 + 0x44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + 0x44)" ( (binary_expression "(int)piVar16 + 0x44" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" identifier = (cast_expression "(undefined ***)piVar16" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (labeled_statement "LAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;" statement_identifier : (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" * (cast_expression "(undefined1 *)(__ptr + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(__ptr + 9)" ( (binary_expression "__ptr + 9" identifier + number_literal) )))) = number_literal) ;)) (labeled_statement "joined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" statement_identifier : (if_statement "if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" { (labeled_statement "LAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;" statement_identifier : (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x859a8" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;)) (expression_statement "FUN_000886f2();" (call_expression "FUN_000886f2()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar1 = (uint *)((int)pppuVar15 + 0x10);" (assignment_expression "puVar1 = (uint *)((int)pppuVar15 + 0x10)" identifier = (cast_expression "(uint *)((int)pppuVar15 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x10)" ( (binary_expression "(int)pppuVar15 + 0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" identifier = (pointer_expression "*puVar1" * identifier)) ;) (expression_statement "*puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);" (assignment_expression "*puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44)" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 + *(uint *)((int)pppuVar15 + 0x44)" (pointer_expression "*puVar1" * identifier) + (pointer_expression "*(uint *)((int)pppuVar15 + 0x44)" * (cast_expression "(uint *)((int)pppuVar15 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));" (assignment_expression "*(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (pointer_expression "*(int *)((int)pppuVar15 + 0x14)" * (cast_expression "(int *)((int)pppuVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x14)" ( (binary_expression "(int)pppuVar15 + 0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (pointer_expression "*(int *)((int)pppuVar15 + 0x14)" * (cast_expression "(int *)((int)pppuVar15 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x14)" ( (binary_expression "(int)pppuVar15 + 0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + (cast_expression "(uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" identifier (argument_list "(uVar5,*(uint *)((int)pppuVar15 + 0x44))" ( identifier , (pointer_expression "*(uint *)((int)pppuVar15 + 0x44)" * (cast_expression "(uint *)((int)pppuVar15 + 0x44)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + 0x44) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + 0x44) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + 0x44)" * (cast_expression "(undefined4 *)((int)pppuVar15 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x44)" ( (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "piVar14 = (int *)pppuVar15;" (assignment_expression "piVar14 = (int *)pppuVar15" identifier = (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }" if (parenthesized_expression "(iVar9 == 1)" ( (binary_expression "iVar9 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }" { (labeled_statement "LAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);" statement_identifier : (expression_statement "uVar5 = *(uint *)((int)piVar14 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)piVar14 + 0x38)" identifier = (pointer_expression "*(uint *)((int)piVar14 + 0x38)" * (cast_expression "(uint *)((int)piVar14 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar14 + 0x38)" ( (binary_expression "(int)piVar14 + 0x38" (cast_expression "(int)piVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "pppuVar15 = (undefined ***)piVar14;" (assignment_expression "pppuVar15 = (undefined ***)piVar14" identifier = (cast_expression "(undefined ***)piVar14" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;) })) (if_statement "if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }" { (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_000859cc;" goto statement_identifier ;) })) }))) (if_statement "if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }" if (parenthesized_expression "(iVar9 != 2)" ( (binary_expression "iVar9 != 2" identifier != number_literal) )) (compound_statement "{\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }" { (labeled_statement "LAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;" statement_identifier : (expression_statement "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;" (assignment_expression "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = (binary_expression "(int)*pppuVar15 + -0x61e1" (cast_expression "(int)*pppuVar15" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pppuVar15" * identifier)) + number_literal)) ;)) (expression_statement "((int *)pppuVar15)[-5] = 0x85833;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85833" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0001930a();" (call_expression "FUN_0001930a()" identifier (argument_list "()" ( ))) ;) (expression_statement "((int *)pppuVar15)[4] = -1;" (assignment_expression "((int *)pppuVar15)[4] = -1" (subscript_expression "((int *)pppuVar15)[4]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (expression_statement "((int *)pppuVar15)[5] = -1;" (assignment_expression "((int *)pppuVar15)[5] = -1" (subscript_expression "((int *)pppuVar15)[5]" (parenthesized_expression "((int *)pppuVar15)" ( (cast_expression "(int *)pppuVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00085601:\n    uVar5 = __ptr[0x126];" statement_identifier : (expression_statement "uVar5 = __ptr[0x126];" (assignment_expression "uVar5 = __ptr[0x126]" identifier = (subscript_expression "__ptr[0x126]" identifier [ number_literal ])) ;)) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)(uVar5 + 0x18)" * (cast_expression "(undefined4 *)(uVar5 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 + 0x18)" ( (binary_expression "uVar5 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "*(uint *)((int)pppuVar15 + -0x10) = uVar5;" (assignment_expression "*(uint *)((int)pppuVar15 + -0x10) = uVar5" (pointer_expression "*(uint *)((int)pppuVar15 + -0x10)" * (cast_expression "(uint *)((int)pppuVar15 + -0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (expression_statement "*(uint **)((int)pppuVar15 + -0x10) = __ptr;" (assignment_expression "*(uint **)((int)pppuVar15 + -0x10) = __ptr" (pointer_expression "*(uint **)((int)pppuVar15 + -0x10)" * (cast_expression "(uint **)((int)pppuVar15 + -0x10)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (labeled_statement "LAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);" statement_identifier : (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)pppuVar15 + 0xc)" * (cast_expression "(undefined4 *)((int)pppuVar15 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0xc)" ( (binary_expression "(int)pppuVar15 + 0xc" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -0x14)" ( (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" identifier (argument_list "(*(void **)((int)pppuVar15 + -0x10))" ( (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" * (cast_expression "(void **)((int)pppuVar15 + -0x10)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pppuVar15 + -0x10)" ( (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ))) ;) (if_statement "if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }" if (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)((int)pppuVar15 + 0x4c)" * (cast_expression "(int *)((int)pppuVar15 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x4c)" ( (binary_expression "(int)pppuVar15 + 0x4c" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }" { (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x8571f" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" * (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + -4)" ( (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return *(undefined8 *)((int)pppuVar15 + 0x10);" return (pointer_expression "*(undefined8 *)((int)pppuVar15 + 0x10)" * (cast_expression "(undefined8 *)((int)pppuVar15 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x10)" ( (binary_expression "(int)pppuVar15 + 0x10" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" identifier = (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" * (cast_expression "(uint *)((int)pppuVar15 + 0x38)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 0x38)" ( (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (labeled_statement "LAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;" statement_identifier : (expression_statement "*(uint *)((int)pppuVar15 + 4) = uVar5;" (assignment_expression "*(uint *)((int)pppuVar15 + 4) = uVar5" (pointer_expression "*(uint *)((int)pppuVar15 + 4)" * (cast_expression "(uint *)((int)pppuVar15 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pppuVar15 + 4)" ( (binary_expression "(int)pppuVar15 + 4" (cast_expression "(int)pppuVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (goto_statement "goto LAB_000855ac;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (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) )))) = 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (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 (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) + (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) [ LIT ]) < IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (switch_statement switch (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT) + (binary_expression IDENT * LIT)) )))) + (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )) (compound_statement { (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (subscript_expression IDENT [ LIT ])) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) != (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (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) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (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) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + 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 IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + IDENT) )))) * LIT) + 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 ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (case_statement case LIT : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) )) (goto_statement goto 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (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 (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (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) )))) = IDENT) ;)) (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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) != (char_literal ' character ')) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT) << (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT >> LIT) )) + LIT) & LIT) )))) ;) (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) )))) < IDENT) )) (compound_statement { (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) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) (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) )))) = (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (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) )))) = (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 = (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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) - (subscript_expression IDENT [ LIT ])) )) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) - (subscript_expression IDENT [ LIT ])) , (subscript_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 IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))))) ;) (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 (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) || (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) ))))) )) || (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) || (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) < IDENT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & (subscript_expression IDENT [ LIT ])) )) != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) || (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ]))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & (subscript_expression IDENT [ LIT ])) )) != LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != (subscript_expression IDENT [ LIT ])) || (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT) + (subscript_expression IDENT [ LIT ])) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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 (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 + IDENT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT < IDENT) )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 + IDENT) )))) != (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) [ LIT ]) >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) )) (goto_statement goto statement_identifier ;)) (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 ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT) + (subscript_expression IDENT [ LIT ])) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + IDENT)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })))) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) }) (else_clause else (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 (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) (do_statement do (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + 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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , (subscript_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) )))) = (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 (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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression ~ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) != 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 ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT) || (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;)) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (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 = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (unary_expression ~ IDENT) + IDENT) + IDENT) & LIT) )) == 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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_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) )))) = (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) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 + IDENT) )))) != (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + 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 *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == IDENT) )) (compound_statement { (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) + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) != (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) )))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) while (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 ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_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) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) != (subscript_expression IDENT [ LIT ])) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) != LIT) || (binary_expression (subscript_expression IDENT [ LIT ]) != (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) | (binary_expression (subscript_expression IDENT [ LIT ]) << LIT)) )))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (subscript_expression IDENT [ LIT ])) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) != IDENT) )) (goto_statement goto statement_identifier ;)) (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 (call_expression IDENT (argument_list ( ))) ;) (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) + LIT) ))))) ;) })))) (labeled_statement statement_identifier : (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) + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (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) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) + IDENT) )))) != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (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 (call_expression IDENT (argument_list ( ))) ;) (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = (binary_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) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )) [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_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) )))) = (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (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) )))) = IDENT) ;) (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 (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (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 (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (labeled_statement statement_identifier : (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (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) )))) = IDENT) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined8 FUN_0008549d(void)\n\n{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}" (type_identifier "undefined8") (function_declarator "FUN_0008549d(void)" (identifier "FUN_0008549d") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  bool bVar2;\n  char cVar3;\n  uint *__ptr;\n  void *pvVar4;\n  uint uVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int *piVar13;\n  int *piVar14;\n  undefined ***pppuVar15;\n  int *piVar16;\n  int *piVar17;\n  undefined4 **ppuVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  undefined **local_6c;\n  undefined4 local_68;\n  undefined4 **local_64;\n  undefined4 *local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  char *local_54;\n  undefined4 *local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 *local_2c;\n  undefined4 local_24;\n  undefined4 local_20;\n  \n  bVar19 = 0;\n  pppuVar15 = &local_6c;\n  local_6c = &__DT_PLTGOT;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }\n  local_64 = &local_38;\n  ppuVar18 = local_64;\n  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }\n  local_60 = (undefined4 *)FUN_0001a288();\n  local_2c = local_60 + 0x800;\n  local_24 = 0x2000;\n  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }\n  local_38 = local_60;\n  __ptr = (uint *)malloc(0x49c);\n  if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }\n  local_68 = local_34;\n  local_5c = 0;\n  local_58 = 0;\n  iVar9 = 1;\nLAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];\n  if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }\n  ((int *)pppuVar15)[-1] = 0x855cf;\n  uVar5 = FUN_0001b3fd();\n  if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }\n  if (__ptr == (uint *)0x0) goto LAB_0008562b;\n  goto LAB_00085601;\nswitchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;\n  do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);\n  *__ptr = 7;\nswitchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];\n  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;\n  uVar12 = __ptr[4];\nLAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }\nLAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);\n  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }\n  *(undefined1 *)(__ptr + 9) = 0;\n  if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }\n  iVar9 = 0;\n  goto LAB_000859cc;\nLAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;\n  iVar9 = iVar9 + 1;\n  piVar16 = (int *)pppuVar15;\n  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;\n  goto LAB_00085795;\nLAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);\n  iVar9 = 7;\n  pppuVar15 = (undefined ***)piVar16;\nLAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;\njoined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }\n  if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }\n  uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  iVar9 = 2;\nLAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;\n  goto LAB_000855ac;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "uint *__ptr;" (type_identifier "uint") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "void *pvVar4;" (primitive_type "void") (pointer_declarator "*pvVar4" (* "*") (identifier "pvVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int *piVar14;" (primitive_type "int") (pointer_declarator "*piVar14" (* "*") (identifier "piVar14")) (; ";")) (declaration "undefined ***pppuVar15;" (type_identifier "undefined") (pointer_declarator "***pppuVar15" (* "*") (pointer_declarator "**pppuVar15" (* "*") (pointer_declarator "*pppuVar15" (* "*") (identifier "pppuVar15")))) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "undefined4 **ppuVar18;" (type_identifier "undefined4") (pointer_declarator "**ppuVar18" (* "*") (pointer_declarator "*ppuVar18" (* "*") (identifier "ppuVar18"))) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar19;" (type_identifier "byte") (identifier "bVar19") (; ";")) (declaration "undefined **local_6c;" (type_identifier "undefined") (pointer_declarator "**local_6c" (* "*") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c"))) (; ";")) (declaration "undefined4 local_68;" (type_identifier "undefined4") (identifier "local_68") (; ";")) (declaration "undefined4 **local_64;" (type_identifier "undefined4") (pointer_declarator "**local_64" (* "*") (pointer_declarator "*local_64" (* "*") (identifier "local_64"))) (; ";")) (declaration "undefined4 *local_60;" (type_identifier "undefined4") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "char *local_54;" (primitive_type "char") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "undefined4 *local_38;" (type_identifier "undefined4") (pointer_declarator "*local_38" (* "*") (identifier "local_38")) (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 *local_2c;" (type_identifier "undefined4") (pointer_declarator "*local_2c" (* "*") (identifier "local_2c")) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" (identifier "bVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "pppuVar15 = &local_6c;" (assignment_expression "pppuVar15 = &local_6c" (identifier "pppuVar15") (= "=") (pointer_expression "&local_6c" (& "&") (identifier "local_6c"))) (; ";")) (expression_statement "local_6c = &__DT_PLTGOT;" (assignment_expression "local_6c = &__DT_PLTGOT" (identifier "local_6c") (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (DAT_000dc718 == 0) {\n    FUN_000af99c();\n  }" (if "if") (parenthesized_expression "(DAT_000dc718 == 0)" (( "(") (binary_expression "DAT_000dc718 == 0" (identifier "DAT_000dc718") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000af99c();\n  }" ({ "{") (expression_statement "FUN_000af99c();" (call_expression "FUN_000af99c()" (identifier "FUN_000af99c") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "local_64 = &local_38;" (assignment_expression "local_64 = &local_38" (identifier "local_64") (= "=") (pointer_expression "&local_38" (& "&") (identifier "local_38"))) (; ";")) (expression_statement "ppuVar18 = local_64;" (assignment_expression "ppuVar18 = local_64" (identifier "ppuVar18") (= "=") (identifier "local_64")) (; ";")) (for_statement "for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar9 = 6" (identifier "iVar9") (= "=") (number_literal "6")) (; ";") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *ppuVar18 = (undefined4 *)0x0;\n    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;\n  }" ({ "{") (expression_statement "*ppuVar18 = (undefined4 *)0x0;" (assignment_expression "*ppuVar18 = (undefined4 *)0x0" (pointer_expression "*ppuVar18" (* "*") (identifier "ppuVar18")) (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;" (assignment_expression "ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1" (identifier "ppuVar18") (= "=") (binary_expression "ppuVar18 + (uint)bVar19 * -2 + 1" (binary_expression "ppuVar18 + (uint)bVar19 * -2" (identifier "ppuVar18") (+ "+") (binary_expression "(uint)bVar19 * -2" (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "local_60 = (undefined4 *)FUN_0001a288();" (assignment_expression "local_60 = (undefined4 *)FUN_0001a288()" (identifier "local_60") (= "=") (cast_expression "(undefined4 *)FUN_0001a288()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a288()" (identifier "FUN_0001a288") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "local_2c = local_60 + 0x800;" (assignment_expression "local_2c = local_60 + 0x800" (identifier "local_2c") (= "=") (binary_expression "local_60 + 0x800" (identifier "local_60") (+ "+") (number_literal "0x800"))) (; ";")) (expression_statement "local_24 = 0x2000;" (assignment_expression "local_24 = 0x2000" (identifier "local_24") (= "=") (number_literal "0x2000")) (; ";")) (if_statement "if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }" (if "if") (parenthesized_expression "((local_54 == (char *)0x0) || (*local_54 != '\0'))" (( "(") (binary_expression "(local_54 == (char *)0x0) || (*local_54 != '\0')" (parenthesized_expression "(local_54 == (char *)0x0)" (( "(") (binary_expression "local_54 == (char *)0x0" (identifier "local_54") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(*local_54 != '\0')" (( "(") (binary_expression "*local_54 != '\0'" (pointer_expression "*local_54" (* "*") (identifier "local_54")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    *local_60 = 0x587a37fd;\n    *(undefined2 *)(local_60 + 1) = 0x5a;\n    local_30 = 6;\n  }" ({ "{") (expression_statement "*local_60 = 0x587a37fd;" (assignment_expression "*local_60 = 0x587a37fd" (pointer_expression "*local_60" (* "*") (identifier "local_60")) (= "=") (number_literal "0x587a37fd")) (; ";")) (expression_statement "*(undefined2 *)(local_60 + 1) = 0x5a;" (assignment_expression "*(undefined2 *)(local_60 + 1) = 0x5a" (pointer_expression "*(undefined2 *)(local_60 + 1)" (* "*") (cast_expression "(undefined2 *)(local_60 + 1)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_60 + 1)" (( "(") (binary_expression "local_60 + 1" (identifier "local_60") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0x5a")) (; ";")) (expression_statement "local_30 = 6;" (assignment_expression "local_30 = 6" (identifier "local_30") (= "=") (number_literal "6")) (; ";")) (} "}"))) (expression_statement "local_38 = local_60;" (assignment_expression "local_38 = local_60" (identifier "local_38") (= "=") (identifier "local_60")) (; ";")) (expression_statement "__ptr = (uint *)malloc(0x49c);" (assignment_expression "__ptr = (uint *)malloc(0x49c)" (identifier "__ptr") (= "=") (cast_expression "(uint *)malloc(0x49c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "malloc(0x49c)" (identifier "malloc") (argument_list "(0x49c)" (( "(") (number_literal "0x49c") () ")"))))) (; ";")) (if_statement "if (__ptr != (uint *)0x0) {\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }" (if "if") (parenthesized_expression "(__ptr != (uint *)0x0)" (( "(") (binary_expression "__ptr != (uint *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    __ptr[8] = 2;\n    pvVar4 = malloc(0x6f28);\n    if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }\n  }" ({ "{") (expression_statement "__ptr[8] = 2;" (assignment_expression "__ptr[8] = 2" (subscript_expression "__ptr[8]" (identifier "__ptr") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "pvVar4 = malloc(0x6f28);" (assignment_expression "pvVar4 = malloc(0x6f28)" (identifier "pvVar4") (= "=") (call_expression "malloc(0x6f28)" (identifier "malloc") (argument_list "(0x6f28)" (( "(") (number_literal "0x6f28") () ")")))) (; ";")) (if_statement "if (pvVar4 == (void *)0x0) {\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }\n    else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" (if "if") (parenthesized_expression "(pvVar4 == (void *)0x0)" (( "(") (binary_expression "pvVar4 == (void *)0x0" (identifier "pvVar4") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(__ptr);\n      __ptr = (uint *)0x0;\n    }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (expression_statement "__ptr = (uint *)0x0;" (assignment_expression "__ptr = (uint *)0x0" (identifier "__ptr") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;\n      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;\n      *(undefined4 *)((int)pvVar4 + 0x18) = 0;\n      *(undefined4 *)((int)pvVar4 + 0x38) = 0;\n      __ptr[0x126] = (uint)pvVar4;\n      FUN_00084bcc();\n    }" ({ "{") (expression_statement "*(undefined4 *)((int)pvVar4 + 0x3c) = 2;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x3c) = 2" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x3c)" (* "*") (cast_expression "(undefined4 *)((int)pvVar4 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar4 + 0x3c)" (( "(") (binary_expression "(int)pvVar4 + 0x3c" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x34)" (* "*") (cast_expression "(undefined4 *)((int)pvVar4 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar4 + 0x34)" (( "(") (binary_expression "(int)pvVar4 + 0x34" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0x4000000")) (; ";")) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x18) = 0;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x18) = 0" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)((int)pvVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar4 + 0x18)" (( "(") (binary_expression "(int)pvVar4 + 0x18" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x18")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pvVar4 + 0x38) = 0;" (assignment_expression "*(undefined4 *)((int)pvVar4 + 0x38) = 0" (pointer_expression "*(undefined4 *)((int)pvVar4 + 0x38)" (* "*") (cast_expression "(undefined4 *)((int)pvVar4 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pvVar4 + 0x38)" (( "(") (binary_expression "(int)pvVar4 + 0x38" (cast_expression "(int)pvVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar4")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[0x126] = (uint)pvVar4;" (assignment_expression "__ptr[0x126] = (uint)pvVar4" (subscript_expression "__ptr[0x126]" (identifier "__ptr") ([ "[") (number_literal "0x126") (] "]")) (= "=") (cast_expression "(uint)pvVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pvVar4"))) (; ";")) (expression_statement "FUN_00084bcc();" (call_expression "FUN_00084bcc()" (identifier "FUN_00084bcc") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_68 = local_34;" (assignment_expression "local_68 = local_34" (identifier "local_68") (= "=") (identifier "local_34")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = 0;" (assignment_expression "local_58 = 0" (identifier "local_58") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_000855ac:\n  uVar5 = ((int *)pppuVar15)[0xf];" (statement_identifier "LAB_000855ac") (: ":") (expression_statement "uVar5 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xf]" (identifier "uVar5") (= "=") (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xf") (] "]"))) (; ";"))) (if_statement "if (uVar5 != ((int *)pppuVar15)[1]) {\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }" (if "if") (parenthesized_expression "(uVar5 != ((int *)pppuVar15)[1])" (( "(") (binary_expression "uVar5 != ((int *)pppuVar15)[1]" (identifier "uVar5") (!= "!=") (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\nLAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }\nLAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];\n    __ptr[4] = ((int *)pppuVar15)[1];\n    uVar5 = *__ptr;\n    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);\n    do {\n    } while (9 < uVar5);\nLAB_000856cf:\n    piVar13 = (int *)pppuVar15;\n    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }\nLAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);\n    iVar9 = 6;\n    pppuVar15 = (undefined ***)piVar16;\n    goto LAB_00085a3d;\n  }" ({ "{") (labeled_statement "LAB_00085687:\n    if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" (statement_identifier "LAB_00085687") (: ":") (if_statement "if (iVar9 == 1) {\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" (if "if") (parenthesized_expression "(iVar9 == 1)" (( "(") (binary_expression "iVar9 == 1" (identifier "iVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      bVar2 = false;\n      do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);\n      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n    }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (do_statement "do {\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      } while ((uint)((int *)pppuVar15)[1] < uVar5);" (do "do") (compound_statement "{\n        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }\n        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;\n        bVar2 = true;\n      }" ({ "{") (if_statement "if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }" (if "if") (parenthesized_expression "(*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0')" (( "(") (binary_expression "*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0'" (pointer_expression "*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" (* "*") (cast_expression "(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1])" (( "(") (binary_expression "((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[3]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "3") (] "]")) (+ "+") (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]"))) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }\n          ((int *)pppuVar15)[-1] = 0x856a9;\n          FUN_00084bcc();\n          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];\n          goto LAB_000856b1;\n        }" ({ "{") (if_statement "if (bVar2) {\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];\n          }" ({ "{") (expression_statement "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];" (assignment_expression "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (expression_statement "((int *)pppuVar15)[-1] = 0x856a9;" (assignment_expression "((int *)pppuVar15)[-1] = 0x856a9" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x856a9")) (; ";")) (expression_statement "FUN_00084bcc();" (call_expression "FUN_00084bcc()" (identifier "FUN_00084bcc") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];" (assignment_expression "((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe]" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (goto_statement "goto LAB_000856b1;" (goto "goto") (statement_identifier "LAB_000856b1") (; ";")) (} "}"))) (expression_statement "((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;" (assignment_expression "((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "((int *)pppuVar15)[1] + 1" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uint)((int *)pppuVar15)[1] < uVar5)" (( "(") (binary_expression "(uint)((int *)pppuVar15)[1] < uVar5" (subscript_expression "(uint)((int *)pppuVar15)[1]" (call_expression "(uint)((int *)pppuVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")"))) ([ "[") (number_literal "1") (] "]")) (< "<") (identifier "uVar5")) () ")")) (; ";")) (expression_statement "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];" (assignment_expression "((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")))) (labeled_statement "LAB_000856b1:\n    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];" (statement_identifier "LAB_000856b1") (: ":") (expression_statement "((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];" (assignment_expression "((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11]" (subscript_expression "((int *)pppuVar15)[8]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0x11") (] "]"))) (; ";"))) (expression_statement "__ptr[4] = ((int *)pppuVar15)[1];" (assignment_expression "__ptr[4] = ((int *)pppuVar15)[1]" (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar5 = *__ptr;" (assignment_expression "uVar5 = *__ptr" (identifier "uVar5") (= "=") (pointer_expression "*__ptr" (* "*") (identifier "__ptr"))) (; ";")) (expression_statement "((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);" (assignment_expression "((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15)" (subscript_expression "((int *)pppuVar15)[0xb]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(int)(__ptr + 0x15)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(__ptr + 0x15)" (( "(") (binary_expression "__ptr + 0x15" (identifier "__ptr") (+ "+") (number_literal "0x15")) () ")")))) (; ";")) (do_statement "do {\n    } while (9 < uVar5);" (do "do") (compound_statement "{\n    }" ({ "{") (} "}")) (while "while") (parenthesized_expression "(9 < uVar5)" (( "(") (binary_expression "9 < uVar5" (number_literal "9") (< "<") (identifier "uVar5")) () ")")) (; ";")) (labeled_statement "LAB_000856cf:\n    piVar13 = (int *)pppuVar15;" (statement_identifier "LAB_000856cf") (: ":") (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" (identifier "piVar13") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";"))) (switch_statement "switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }" (switch "switch") (parenthesized_expression "(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15)" (( "(") (binary_expression "*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15" (pointer_expression "*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4)" (* "*") (cast_expression "(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*pppuVar15 + -0x15650 + uVar5 * 4)" (( "(") (binary_expression "(int)*pppuVar15 + -0x15650 + uVar5 * 4" (binary_expression "(int)*pppuVar15 + -0x15650" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "-0x15650")) (+ "+") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4"))) () ")")))) (+ "+") (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15")))) () ")")) (compound_statement "{\n    case 0x8571f:\n      goto switchD_000856db_caseD_8571f;\n    case 0x8577d:\n      goto switchD_000856db_caseD_8577d;\n    case 0x857d4:\n      goto switchD_000856db_caseD_857d4;\n    case 0x858aa:\n      goto switchD_000856db_caseD_858aa;\n    case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;\n    case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;\n    case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;\n    case 0x85d53:\n      goto switchD_000856db_caseD_85d53;\n    case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;\n    case 0x85eea:\n      goto switchD_000856db_caseD_85eea;\n    }" ({ "{") (case_statement "case 0x8571f:\n      goto switchD_000856db_caseD_8571f;" (case "case") (number_literal "0x8571f") (: ":") (goto_statement "goto switchD_000856db_caseD_8571f;" (goto "goto") (statement_identifier "switchD_000856db_caseD_8571f") (; ";"))) (case_statement "case 0x8577d:\n      goto switchD_000856db_caseD_8577d;" (case "case") (number_literal "0x8577d") (: ":") (goto_statement "goto switchD_000856db_caseD_8577d;" (goto "goto") (statement_identifier "switchD_000856db_caseD_8577d") (; ";"))) (case_statement "case 0x857d4:\n      goto switchD_000856db_caseD_857d4;" (case "case") (number_literal "0x857d4") (: ":") (goto_statement "goto switchD_000856db_caseD_857d4;" (goto "goto") (statement_identifier "switchD_000856db_caseD_857d4") (; ";"))) (case_statement "case 0x858aa:\n      goto switchD_000856db_caseD_858aa;" (case "case") (number_literal "0x858aa") (: ":") (goto_statement "goto switchD_000856db_caseD_858aa;" (goto "goto") (statement_identifier "switchD_000856db_caseD_858aa") (; ";"))) (case_statement "case 0x85b01:\n      ((int *)pppuVar15)[-1] = 0x85b0c;\n      cVar3 = FUN_0008543e();\n      if (cVar3 == '\0') goto LAB_000858b9;\n      *__ptr = 1;\n      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }\n      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n      ((int *)pppuVar15)[-5] = 0x85b5b;\n      uVar5 = FUN_000af9bf();\n      piVar13 = (int *)pppuVar15 + -1;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (*(char *)((int)__ptr + 0x9e) != '\0') break;\n      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);\n      __ptr[7] = uVar5;\n      piVar16 = (int *)pppuVar15 + -1;\n      if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }\n      break;" (case "case") (number_literal "0x85b01") (: ":") (expression_statement "((int *)pppuVar15)[-1] = 0x85b0c;" (assignment_expression "((int *)pppuVar15)[-1] = 0x85b0c" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x85b0c")) (; ";")) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" (identifier "cVar3") (= "=") (call_expression "FUN_0008543e()" (identifier "FUN_0008543e") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (cVar3 == '\0') goto LAB_000858b9;" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000858b9;" (goto "goto") (statement_identifier "LAB_000858b9") (; ";"))) (expression_statement "*__ptr = 1;" (assignment_expression "*__ptr = 1" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "1")) (; ";")) (if_statement "if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }" (if "if") (parenthesized_expression "((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a))" (( "(") (binary_expression "(__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)" (parenthesized_expression "(__ptr[0x26] != 0x587a37fd)" (( "(") (binary_expression "__ptr[0x26] != 0x587a37fd" (subscript_expression "__ptr[0x26]" (identifier "__ptr") ([ "[") (number_literal "0x26") (] "]")) (!= "!=") (number_literal "0x587a37fd")) () ")")) (|| "||") (parenthesized_expression "((short)__ptr[0x27] != 0x5a)" (( "(") (binary_expression "(short)__ptr[0x27] != 0x5a" (cast_expression "(short)__ptr[0x27]" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (subscript_expression "__ptr[0x27]" (identifier "__ptr") ([ "[") (number_literal "0x27") (] "]"))) (!= "!=") (number_literal "0x5a")) () ")"))) () ")")) (compound_statement "{\n        iVar7 = ((int *)pppuVar15)[0x11];\n        iVar9 = 5;\n        goto LAB_00085a3d;\n      }" ({ "{") (expression_statement "iVar7 = ((int *)pppuVar15)[0x11];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x11]" (identifier "iVar7") (= "=") (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "iVar9 = 5;" (assignment_expression "iVar9 = 5" (identifier "iVar9") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_00085a3d;" (goto "goto") (statement_identifier "LAB_00085a3d") (; ";")) (} "}"))) (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" (* "*") (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" (( "(") (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "0xcf8")) () ")"))))) (; ";")) (expression_statement "((int *)pppuVar15)[-5] = 0x85b5b;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85b5b" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x85b5b")) (; ";")) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" (identifier "uVar5") (= "=") (call_expression "FUN_000af9bf()" (identifier "FUN_000af9bf") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar13 = (int *)pppuVar15 + -1;" (assignment_expression "piVar13 = (int *)pppuVar15 + -1" (identifier "piVar13") (= "=") (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" (identifier "piVar16") (= "=") (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;" (if "if") (parenthesized_expression "(~uVar5 != __ptr[0x28])" (( "(") (binary_expression "~uVar5 != __ptr[0x28]" (unary_expression "~uVar5" (~ "~") (identifier "uVar5")) (!= "!=") (subscript_expression "__ptr[0x28]" (identifier "__ptr") ([ "[") (number_literal "0x28") (] "]"))) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" (identifier "piVar16") (= "=") (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(char *)((int)__ptr + 0x9e) != '\0') break;" (if "if") (parenthesized_expression "(*(char *)((int)__ptr + 0x9e) != '\0')" (( "(") (binary_expression "*(char *)((int)__ptr + 0x9e) != '\0'" (pointer_expression "*(char *)((int)__ptr + 0x9e)" (* "*") (cast_expression "(char *)((int)__ptr + 0x9e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + 0x9e)" (( "(") (binary_expression "(int)__ptr + 0x9e" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (number_literal "0x9e")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);" (assignment_expression "uVar5 = (uint)*(byte *)((int)__ptr + 0x9f)" (identifier "uVar5") (= "=") (binary_expression "(uint)*(byte *)((int)__ptr + 0x9f)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)__ptr + 0x9f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + 0x9f)" (( "(") (binary_expression "(int)__ptr + 0x9f" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (number_literal "0x9f")) () ")"))))) (; ";")) (expression_statement "__ptr[7] = uVar5;" (assignment_expression "__ptr[7] = uVar5" (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "piVar16 = (int *)pppuVar15 + -1;" (assignment_expression "piVar16 = (int *)pppuVar15 + -1" (identifier "piVar16") (= "=") (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (uVar5 < 0x10) {\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }" (if "if") (parenthesized_expression "(uVar5 < 0x10)" (( "(") (binary_expression "uVar5 < 0x10" (identifier "uVar5") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;\n        iVar7 = ((int *)pppuVar15)[0x10];\n        iVar9 = 2;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        goto LAB_00085a3d;\n      }" ({ "{") (if_statement "if (uVar5 < 2) goto switchD_000856db_caseD_85b95;" (if "if") (parenthesized_expression "(uVar5 < 2)" (( "(") (binary_expression "uVar5 < 2" (identifier "uVar5") (< "<") (number_literal "2")) () ")")) (goto_statement "goto switchD_000856db_caseD_85b95;" (goto "goto") (statement_identifier "switchD_000856db_caseD_85b95") (; ";"))) (expression_statement "iVar7 = ((int *)pppuVar15)[0x10];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x10]" (identifier "iVar7") (= "=") (subscript_expression "((int *)pppuVar15)[0x10]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" (identifier "iVar9") (= "=") (number_literal "2")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int *)pppuVar15 + -1)" (( "(") (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (goto_statement "goto LAB_00085a3d;" (goto "goto") (statement_identifier "LAB_00085a3d") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x85b95:\nswitchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);\n      pppuVar15 = (undefined ***)piVar13;\n      uVar5 = *(uint *)((int)piVar13 + 0x3c);\n      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;\n      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }\n      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;\n      __ptr[0xe] = uVar5;\n      __ptr[0x25] = uVar5;\n      __ptr[0x24] = 0;\n      *__ptr = 2;" (case "case") (number_literal "0x85b95") (: ":") (labeled_statement "switchD_000856db_caseD_85b95:\n      uVar12 = *(uint *)((int)piVar13 + 0x38);" (statement_identifier "switchD_000856db_caseD_85b95") (: ":") (expression_statement "uVar12 = *(uint *)((int)piVar13 + 0x38);" (assignment_expression "uVar12 = *(uint *)((int)piVar13 + 0x38)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)((int)piVar13 + 0x38)" (* "*") (cast_expression "(uint *)((int)piVar13 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x38)" (( "(") (binary_expression "(int)piVar13 + 0x38" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";"))) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar13" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar13"))) (; ";")) (expression_statement "uVar5 = *(uint *)((int)piVar13 + 0x3c);" (assignment_expression "uVar5 = *(uint *)((int)piVar13 + 0x3c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)piVar13 + 0x3c)" (* "*") (cast_expression "(uint *)((int)piVar13 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x3c)" (( "(") (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;" (if "if") (parenthesized_expression "(uVar12 == *(uint *)((int)piVar13 + 0x3c))" (( "(") (binary_expression "uVar12 == *(uint *)((int)piVar13 + 0x3c)" (identifier "uVar12") (== "==") (pointer_expression "*(uint *)((int)piVar13 + 0x3c)" (* "*") (cast_expression "(uint *)((int)piVar13 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x3c)" (( "(") (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x3c")) () ")"))))) () ")")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";"))) (if_statement "if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }" (if "if") (parenthesized_expression "(*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0)" (( "(") (binary_expression "*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0" (pointer_expression "*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" (* "*") (cast_expression "(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)piVar13 + 0x34) + uVar12)" (( "(") (binary_expression "*(int *)((int)piVar13 + 0x34) + uVar12" (pointer_expression "*(int *)((int)piVar13 + 0x34)" (* "*") (cast_expression "(int *)((int)piVar13 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x34)" (( "(") (binary_expression "(int)piVar13 + 0x34" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (identifier "uVar12")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;\n        __ptr[4] = uVar12;\n        *__ptr = 6;\n        uVar5 = 6;\n        goto LAB_000856cf;\n      }" ({ "{") (expression_statement "*(uint *)((int)piVar13 + 0x38) = uVar12 + 1;" (assignment_expression "*(uint *)((int)piVar13 + 0x38) = uVar12 + 1" (pointer_expression "*(uint *)((int)piVar13 + 0x38)" (* "*") (cast_expression "(uint *)((int)piVar13 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x38)" (( "(") (binary_expression "(int)piVar13 + 0x38" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__ptr[4] = uVar12;" (assignment_expression "__ptr[4] = uVar12" (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*__ptr = 6;" (assignment_expression "*__ptr = 6" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "6")) (; ";")) (expression_statement "uVar5 = 6;" (assignment_expression "uVar5 = 6" (identifier "uVar5") (= "=") (number_literal "6")) (; ";")) (goto_statement "goto LAB_000856cf;" (goto "goto") (statement_identifier "LAB_000856cf") (; ";")) (} "}"))) (expression_statement "uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;" (assignment_expression "uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4" (identifier "uVar5") (= "=") (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4" (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4" (binary_expression "(uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)piVar13 + 0x34) + uVar12)" (( "(") (binary_expression "*(int *)((int)piVar13 + 0x34) + uVar12" (pointer_expression "*(int *)((int)piVar13 + 0x34)" (* "*") (cast_expression "(int *)((int)piVar13 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x34)" (( "(") (binary_expression "(int)piVar13 + 0x34" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (identifier "uVar12")) () ")")))) (* "*") (number_literal "4")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "__ptr[0xe] = uVar5;" (assignment_expression "__ptr[0xe] = uVar5" (subscript_expression "__ptr[0xe]" (identifier "__ptr") ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "__ptr[0x25] = uVar5;" (assignment_expression "__ptr[0x25] = uVar5" (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "__ptr[0x24] = 0;" (assignment_expression "__ptr[0x24] = 0" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*__ptr = 2;" (assignment_expression "*__ptr = 2" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "2")) (; ";"))) (case_statement "case 0x85bd6:\n      piVar13[-1] = 0x85be1;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') goto LAB_000858b9;\n      __ptr[0x25] = __ptr[0x25] - 4;\n      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n      piVar13[-5] = 0x85c17;\n      uVar12 = FUN_000af9bf();\n      uVar5 = __ptr[0x25];\n      pppuVar15 = (undefined ***)(piVar13 + -1);\n      piVar17 = piVar13 + -1;\n      piVar16 = piVar13 + -1;\n      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;\n      __ptr[0x24] = 2;\n      bVar19 = *(byte *)((int)__ptr + 0x99);\n      piVar16 = piVar13 + -1;\n      if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }\n      break;" (case "case") (number_literal "0x85bd6") (: ":") (expression_statement "piVar13[-1] = 0x85be1;" (assignment_expression "piVar13[-1] = 0x85be1" (subscript_expression "piVar13[-1]" (identifier "piVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x85be1")) (; ";")) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" (identifier "cVar3") (= "=") (call_expression "FUN_0008543e()" (identifier "FUN_0008543e") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar13" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar13"))) (; ";")) (if_statement "if (cVar3 == '\0') goto LAB_000858b9;" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000858b9;" (goto "goto") (statement_identifier "LAB_000858b9") (; ";"))) (expression_statement "__ptr[0x25] = __ptr[0x25] - 4;" (assignment_expression "__ptr[0x25] = __ptr[0x25] - 4" (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]")) (= "=") (binary_expression "__ptr[0x25] - 4" (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]")) (- "-") (number_literal "4"))) (; ";")) (expression_statement "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);" (assignment_expression "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8)" (subscript_expression "piVar13[-4]" (identifier "piVar13") ([ "[") (number_literal "-4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(*piVar13 + 0xcf8)" (* "*") (cast_expression "(undefined4 *)(*piVar13 + 0xcf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar13 + 0xcf8)" (( "(") (binary_expression "*piVar13 + 0xcf8" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (+ "+") (number_literal "0xcf8")) () ")"))))) (; ";")) (expression_statement "piVar13[-5] = 0x85c17;" (assignment_expression "piVar13[-5] = 0x85c17" (subscript_expression "piVar13[-5]" (identifier "piVar13") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x85c17")) (; ";")) (expression_statement "uVar12 = FUN_000af9bf();" (assignment_expression "uVar12 = FUN_000af9bf()" (identifier "uVar12") (= "=") (call_expression "FUN_000af9bf()" (identifier "FUN_000af9bf") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)(piVar13 + -1)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(piVar13 + -1)" (( "(") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "piVar17 = piVar13 + -1;" (assignment_expression "piVar17 = piVar13 + -1" (identifier "piVar17") (= "=") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" (identifier "piVar16") (= "=") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;" (if "if") (parenthesized_expression "(~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98))" (( "(") (binary_expression "~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)" (unary_expression "~uVar12" (~ "~") (identifier "uVar12")) (!= "!=") (pointer_expression "*(uint *)((int)__ptr + uVar5 + 0x98)" (* "*") (cast_expression "(uint *)((int)__ptr + uVar5 + 0x98)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + uVar5 + 0x98)" (( "(") (binary_expression "(int)__ptr + uVar5 + 0x98" (binary_expression "(int)__ptr + uVar5" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (identifier "uVar5")) (+ "+") (number_literal "0x98")) () ")"))))) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "__ptr[0x24] = 2;" (assignment_expression "__ptr[0x24] = 2" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "bVar19 = *(byte *)((int)__ptr + 0x99);" (assignment_expression "bVar19 = *(byte *)((int)__ptr + 0x99)" (identifier "bVar19") (= "=") (pointer_expression "*(byte *)((int)__ptr + 0x99)" (* "*") (cast_expression "(byte *)((int)__ptr + 0x99)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + 0x99)" (( "(") (binary_expression "(int)__ptr + 0x99" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (number_literal "0x99")) () ")"))))) (; ";")) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" (identifier "piVar16") (= "=") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if ((bVar19 & 0x3f) == 0) {\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }" (if "if") (parenthesized_expression "((bVar19 & 0x3f) == 0)" (( "(") (binary_expression "(bVar19 & 0x3f) == 0" (parenthesized_expression "(bVar19 & 0x3f)" (( "(") (binary_expression "bVar19 & 0x3f" (identifier "bVar19") (& "&") (number_literal "0x3f")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (uVar8 < 2) goto LAB_00085a34;\n        __ptr[0x24] = uVar12 + 1;\n        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;\n        __ptr[0x24] = uVar12 + 2;\n        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;\n        if (uVar12 + 2 == uVar5) goto LAB_00085a34;\n        uVar8 = uVar12 + 3;\n        __ptr[0x24] = uVar8;\n        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);\n        if (0x27 < bVar19) break;\n        uVar12 = __ptr[0x126];\n        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);\n        *(uint *)(uVar12 + 0x30) = uVar10;\n        if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }\n        *(uint *)(uVar12 + 0x2c) = uVar10;\n        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }\n        *(undefined4 *)(uVar12 + 0x68) = 0;\n        *(undefined4 *)(uVar12 + 0x40) = 0;\n        *(undefined1 *)(uVar12 + 0x50) = 1;\n        *(undefined4 *)(uVar12 + 0x6ee4) = 0;\n        if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }\n        __ptr[0x24] = 0;\n        __ptr[0xf] = 0;\n        __ptr[0x10] = 0;\n        __ptr[0x11] = 0;\n        __ptr[0x12] = 0;\n        *__ptr = 3;\nswitchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];\n        __ptr[5] = ((int *)pppuVar15)[0x11];\n        ((int *)pppuVar15)[-1] = 0x85d70;\n        iVar9 = FUN_00084c5e();\n        ((int *)pppuVar15)[7] = iVar9;\n        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];\n        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);\n        __ptr[0xf] = uVar8;\n        __ptr[0x10] = uVar10;\n        iVar7 = ((int *)pppuVar15)[0x11];\n        uVar5 = __ptr[5];\n        ((int *)pppuVar15)[9] = uVar5;\n        uVar5 = iVar7 - uVar5;\n        ((int *)pppuVar15)[10] = uVar5;\n        uVar12 = uVar5 + __ptr[0x11];\n        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);\n        __ptr[0x11] = uVar12;\n        __ptr[0x12] = uVar5;\n        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }\n        if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }\n        if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }\n        piVar16 = (int *)pppuVar15;\n        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;\n        uVar5 = __ptr[0x11];\n        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;\n        uVar12 = __ptr[0x15];\n        uVar10 = __ptr[0xf] + __ptr[0x15];\n        uVar8 = __ptr[0xe] + uVar10;\n        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n        __ptr[0x15] = uVar8 + bVar19;\n        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);\n        puVar1 = __ptr + 0x17;\n        uVar12 = *puVar1;\n        *puVar1 = *puVar1 + uVar5;\n        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);\n        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n        ((int *)pppuVar15)[-5] = 0x85e83;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x19] = ~uVar5;\n        puVar1 = __ptr + 0x13;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + 1;\n        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);\n        *__ptr = 4;\n        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\nswitchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];\n        uVar8 = __ptr[0x10];\n        if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }\n        *__ptr = 5;\nswitchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }\n        *__ptr = 1;\n        uVar5 = 1;\n        goto LAB_000856cf;\n      }" ({ "{") (if_statement "if ((bVar19 & 0x40) == 0) {\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }\n        else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" (if "if") (parenthesized_expression "((bVar19 & 0x40) == 0)" (( "(") (binary_expression "(bVar19 & 0x40) == 0" (parenthesized_expression "(bVar19 & 0x40)" (( "(") (binary_expression "bVar19 & 0x40" (identifier "bVar19") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          __ptr[10] = 0xffffffff;\n          __ptr[0xb] = 0xffffffff;\n          if ((char)bVar19 < '\0') goto LAB_00086094;\nLAB_00085c61:\n          __ptr[0xc] = 0xffffffff;\n          __ptr[0xd] = 0xffffffff;\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" ({ "{") (expression_statement "__ptr[10] = 0xffffffff;" (assignment_expression "__ptr[10] = 0xffffffff" (subscript_expression "__ptr[10]" (identifier "__ptr") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "__ptr[0xb] = 0xffffffff;" (assignment_expression "__ptr[0xb] = 0xffffffff" (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (if_statement "if ((char)bVar19 < '\0') goto LAB_00086094;" (if "if") (parenthesized_expression "((char)bVar19 < '\0')" (( "(") (binary_expression "(char)bVar19 < '\0'" (cast_expression "(char)bVar19" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar19")) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00086094;" (goto "goto") (statement_identifier "LAB_00086094") (; ";"))) (labeled_statement "LAB_00085c61:\n          __ptr[0xc] = 0xffffffff;" (statement_identifier "LAB_00085c61") (: ":") (expression_statement "__ptr[0xc] = 0xffffffff;" (assignment_expression "__ptr[0xc] = 0xffffffff" (subscript_expression "__ptr[0xc]" (identifier "__ptr") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "__ptr[0xd] = 0xffffffff;" (assignment_expression "__ptr[0xd] = 0xffffffff" (subscript_expression "__ptr[0xd]" (identifier "__ptr") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar12 = __ptr[0x24];" (assignment_expression "uVar12 = __ptr[0x24]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]"))) (; ";")) (expression_statement "uVar8 = uVar5 - uVar12;" (assignment_expression "uVar8 = uVar5 - uVar12" (identifier "uVar8") (= "=") (binary_expression "uVar5 - uVar12" (identifier "uVar5") (- "-") (identifier "uVar12"))) (; ";")) (} "}")) (else_clause "else {\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" (else "else") (compound_statement "{\n          piVar13[-5] = uVar5;\n          piVar13[-6] = 0x860ee;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)(piVar13 + -2);\n          piVar17 = piVar13 + -2;\n          piVar16 = piVar13 + -2;\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[10] = __ptr[2];\n          __ptr[0xb] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;\nLAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;\n          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;\n          iVar9 = FUN_00084b26();\n          pppuVar15 = (undefined ***)((int)piVar17 + -4);\n          piVar16 = (int *)((int)piVar17 + -4);\n          if (iVar9 != 1) goto LAB_00085a34;\n          __ptr[0xc] = __ptr[2];\n          __ptr[0xd] = __ptr[3];\n          uVar5 = __ptr[0x25];\n          uVar12 = __ptr[0x24];\n          uVar8 = uVar5 - uVar12;\n        }" ({ "{") (expression_statement "piVar13[-5] = uVar5;" (assignment_expression "piVar13[-5] = uVar5" (subscript_expression "piVar13[-5]" (identifier "piVar13") ([ "[") (number_literal "-5") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "piVar13[-6] = 0x860ee;" (assignment_expression "piVar13[-6] = 0x860ee" (subscript_expression "piVar13[-6]" (identifier "piVar13") ([ "[") (number_literal "-6") (] "]")) (= "=") (number_literal "0x860ee")) (; ";")) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" (identifier "iVar9") (= "=") (call_expression "FUN_00084b26()" (identifier "FUN_00084b26") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -2);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -2)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)(piVar13 + -2)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(piVar13 + -2)" (( "(") (binary_expression "piVar13 + -2" (identifier "piVar13") (+ "+") (number_literal "-2")) () ")")))) (; ";")) (expression_statement "piVar17 = piVar13 + -2;" (assignment_expression "piVar17 = piVar13 + -2" (identifier "piVar17") (= "=") (binary_expression "piVar13 + -2" (identifier "piVar13") (+ "+") (number_literal "-2"))) (; ";")) (expression_statement "piVar16 = piVar13 + -2;" (assignment_expression "piVar16 = piVar13 + -2" (identifier "piVar16") (= "=") (binary_expression "piVar13 + -2" (identifier "piVar13") (+ "+") (number_literal "-2"))) (; ";")) (if_statement "if (iVar9 != 1) goto LAB_00085a34;" (if "if") (parenthesized_expression "(iVar9 != 1)" (( "(") (binary_expression "iVar9 != 1" (identifier "iVar9") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "__ptr[10] = __ptr[2];" (assignment_expression "__ptr[10] = __ptr[2]" (subscript_expression "__ptr[10]" (identifier "__ptr") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "__ptr[2]" (identifier "__ptr") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "__ptr[0xb] = __ptr[3];" (assignment_expression "__ptr[0xb] = __ptr[3]" (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "__ptr[3]" (identifier "__ptr") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (if_statement "if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;" (if "if") (parenthesized_expression "(-1 < *(char *)((int)__ptr + 0x99))" (( "(") (binary_expression "-1 < *(char *)((int)__ptr + 0x99)" (number_literal "-1") (< "<") (pointer_expression "*(char *)((int)__ptr + 0x99)" (* "*") (cast_expression "(char *)((int)__ptr + 0x99)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + 0x99)" (( "(") (binary_expression "(int)__ptr + 0x99" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (number_literal "0x99")) () ")"))))) () ")")) (goto_statement "goto LAB_00085c61;" (goto "goto") (statement_identifier "LAB_00085c61") (; ";"))) (labeled_statement "LAB_00086094:\n          *(uint *)((int)piVar17 + -0x10) = uVar5;" (statement_identifier "LAB_00086094") (: ":") (expression_statement "*(uint *)((int)piVar17 + -0x10) = uVar5;" (assignment_expression "*(uint *)((int)piVar17 + -0x10) = uVar5" (pointer_expression "*(uint *)((int)piVar17 + -0x10)" (* "*") (cast_expression "(uint *)((int)piVar17 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar17 + -0x10)" (( "(") (binary_expression "(int)piVar17 + -0x10" (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar5")) (; ";"))) (expression_statement "*(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;" (assignment_expression "*(undefined4 *)((int)piVar17 + -0x14) = 0x860a7" (pointer_expression "*(undefined4 *)((int)piVar17 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar17 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar17 + -0x14)" (( "(") (binary_expression "(int)piVar17 + -0x14" (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x860a7")) (; ";")) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" (identifier "iVar9") (= "=") (call_expression "FUN_00084b26()" (identifier "FUN_00084b26") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int)piVar17 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar17 + -4)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int)piVar17 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar17 + -4)" (( "(") (binary_expression "(int)piVar17 + -4" (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (expression_statement "piVar16 = (int *)((int)piVar17 + -4);" (assignment_expression "piVar16 = (int *)((int)piVar17 + -4)" (identifier "piVar16") (= "=") (cast_expression "(int *)((int)piVar17 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar17 + -4)" (( "(") (binary_expression "(int)piVar17 + -4" (cast_expression "(int)piVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar17")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (if_statement "if (iVar9 != 1) goto LAB_00085a34;" (if "if") (parenthesized_expression "(iVar9 != 1)" (( "(") (binary_expression "iVar9 != 1" (identifier "iVar9") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "__ptr[0xc] = __ptr[2];" (assignment_expression "__ptr[0xc] = __ptr[2]" (subscript_expression "__ptr[0xc]" (identifier "__ptr") ([ "[") (number_literal "0xc") (] "]")) (= "=") (subscript_expression "__ptr[2]" (identifier "__ptr") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "__ptr[0xd] = __ptr[3];" (assignment_expression "__ptr[0xd] = __ptr[3]" (subscript_expression "__ptr[0xd]" (identifier "__ptr") ([ "[") (number_literal "0xd") (] "]")) (= "=") (subscript_expression "__ptr[3]" (identifier "__ptr") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "uVar12 = __ptr[0x24];" (assignment_expression "uVar12 = __ptr[0x24]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]"))) (; ";")) (expression_statement "uVar8 = uVar5 - uVar12;" (assignment_expression "uVar8 = uVar5 - uVar12" (identifier "uVar8") (= "=") (binary_expression "uVar5 - uVar12" (identifier "uVar5") (- "-") (identifier "uVar12"))) (; ";")) (} "}")))) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" (identifier "piVar16") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (uVar8 < 2) goto LAB_00085a34;" (if "if") (parenthesized_expression "(uVar8 < 2)" (( "(") (binary_expression "uVar8 < 2" (identifier "uVar8") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "__ptr[0x24] = uVar12 + 1;" (assignment_expression "__ptr[0x24] = uVar12 + 1" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;" (if "if") (parenthesized_expression "(*(char *)((int)__ptr + uVar12 + 0x98) != '!')" (( "(") (binary_expression "*(char *)((int)__ptr + uVar12 + 0x98) != '!'" (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x98)" (* "*") (cast_expression "(char *)((int)__ptr + uVar12 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + uVar12 + 0x98)" (( "(") (binary_expression "(int)__ptr + uVar12 + 0x98" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (identifier "uVar12")) (+ "+") (number_literal "0x98")) () ")")))) (!= "!=") (char_literal "'!'" (' "'") (character "!") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "__ptr[0x24] = uVar12 + 2;" (assignment_expression "__ptr[0x24] = uVar12 + 2" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (binary_expression "uVar12 + 2" (identifier "uVar12") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;" (if "if") (parenthesized_expression "(*(char *)((int)__ptr + uVar12 + 0x99) != '\x01')" (( "(") (binary_expression "*(char *)((int)__ptr + uVar12 + 0x99) != '\x01'" (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x99)" (* "*") (cast_expression "(char *)((int)__ptr + uVar12 + 0x99)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + uVar12 + 0x99)" (( "(") (binary_expression "(int)__ptr + uVar12 + 0x99" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (identifier "uVar12")) (+ "+") (number_literal "0x99")) () ")")))) (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (uVar12 + 2 == uVar5) goto LAB_00085a34;" (if "if") (parenthesized_expression "(uVar12 + 2 == uVar5)" (( "(") (binary_expression "uVar12 + 2 == uVar5" (binary_expression "uVar12 + 2" (identifier "uVar12") (+ "+") (number_literal "2")) (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "uVar8 = uVar12 + 3;" (assignment_expression "uVar8 = uVar12 + 3" (identifier "uVar8") (= "=") (binary_expression "uVar12 + 3" (identifier "uVar12") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "__ptr[0x24] = uVar8;" (assignment_expression "__ptr[0x24] = uVar8" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);" (assignment_expression "bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a)" (identifier "bVar19") (= "=") (pointer_expression "*(byte *)((int)__ptr + uVar12 + 0x9a)" (* "*") (cast_expression "(byte *)((int)__ptr + uVar12 + 0x9a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + uVar12 + 0x9a)" (( "(") (binary_expression "(int)__ptr + uVar12 + 0x9a" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (identifier "uVar12")) (+ "+") (number_literal "0x9a")) () ")"))))) (; ";")) (if_statement "if (0x27 < bVar19) break;" (if "if") (parenthesized_expression "(0x27 < bVar19)" (( "(") (binary_expression "0x27 < bVar19" (number_literal "0x27") (< "<") (identifier "bVar19")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar12 = __ptr[0x126];" (assignment_expression "uVar12 = __ptr[0x126]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[0x126]" (identifier "__ptr") ([ "[") (number_literal "0x126") (] "]"))) (; ";")) (expression_statement "uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);" (assignment_expression "uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f)" (identifier "uVar10") (= "=") (binary_expression "(bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f)" (binary_expression "(bVar19 & 1) + 2" (parenthesized_expression "(bVar19 & 1)" (( "(") (binary_expression "bVar19 & 1" (identifier "bVar19") (& "&") (number_literal "1")) () ")")) (+ "+") (number_literal "2")) (<< "<<") (parenthesized_expression "((bVar19 >> 1) + 0xb & 0x1f)" (( "(") (binary_expression "(bVar19 >> 1) + 0xb & 0x1f" (binary_expression "(bVar19 >> 1) + 0xb" (parenthesized_expression "(bVar19 >> 1)" (( "(") (binary_expression "bVar19 >> 1" (identifier "bVar19") (>> ">>") (number_literal "1")) () ")")) (+ "+") (number_literal "0xb")) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "*(uint *)(uVar12 + 0x30) = uVar10;" (assignment_expression "*(uint *)(uVar12 + 0x30) = uVar10" (pointer_expression "*(uint *)(uVar12 + 0x30)" (* "*") (cast_expression "(uint *)(uVar12 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x30)" (( "(") (binary_expression "uVar12 + 0x30" (identifier "uVar12") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (*(uint *)(uVar12 + 0x34) < uVar10) {\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }" (if "if") (parenthesized_expression "(*(uint *)(uVar12 + 0x34) < uVar10)" (( "(") (binary_expression "*(uint *)(uVar12 + 0x34) < uVar10" (pointer_expression "*(uint *)(uVar12 + 0x34)" (* "*") (cast_expression "(uint *)(uVar12 + 0x34)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x34)" (( "(") (binary_expression "uVar12 + 0x34" (identifier "uVar12") (+ "+") (number_literal "0x34")) () ")")))) (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n          iVar7 = *(int *)((int)pppuVar15 + 0x44);\n          iVar9 = 4;\n          goto LAB_00085a3d;\n        }" ({ "{") (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x44)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "iVar9 = 4;" (assignment_expression "iVar9 = 4" (identifier "iVar9") (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_00085a3d;" (goto "goto") (statement_identifier "LAB_00085a3d") (; ";")) (} "}"))) (expression_statement "*(uint *)(uVar12 + 0x2c) = uVar10;" (assignment_expression "*(uint *)(uVar12 + 0x2c) = uVar10" (pointer_expression "*(uint *)(uVar12 + 0x2c)" (* "*") (cast_expression "(uint *)(uVar12 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x2c)" (( "(") (binary_expression "uVar12 + 0x2c" (identifier "uVar12") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar10")) (; ";")) (if_statement "if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }" (if "if") (parenthesized_expression "((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10))" (( "(") (binary_expression "(*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)" (parenthesized_expression "(*(int *)(uVar12 + 0x3c) == 2)" (( "(") (binary_expression "*(int *)(uVar12 + 0x3c) == 2" (pointer_expression "*(int *)(uVar12 + 0x3c)" (* "*") (cast_expression "(int *)(uVar12 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x3c)" (( "(") (binary_expression "uVar12 + 0x3c" (identifier "uVar12") (+ "+") (number_literal "0x3c")) () ")")))) (== "==") (number_literal "2")) () ")")) (&& "&&") (parenthesized_expression "(*(uint *)(uVar12 + 0x38) < uVar10)" (( "(") (binary_expression "*(uint *)(uVar12 + 0x38) < uVar10" (pointer_expression "*(uint *)(uVar12 + 0x38)" (* "*") (cast_expression "(uint *)(uVar12 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x38)" (( "(") (binary_expression "uVar12 + 0x38" (identifier "uVar12") (+ "+") (number_literal "0x38")) () ")")))) (< "<") (identifier "uVar10")) () ")"))) () ")")) (compound_statement "{\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;\n          free(*(void **)((int)pppuVar15 + -0x10));\n          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);\n          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;\n          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));\n          *(void **)(uVar12 + 0x18) = pvVar4;\n          if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }\n          uVar5 = __ptr[0x25];\n          uVar8 = __ptr[0x24];\n        }" ({ "{") (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(uVar12 + 0x18)" (* "*") (cast_expression "(undefined4 *)(uVar12 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x18)" (( "(") (binary_expression "uVar12 + 0x18" (identifier "uVar12") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x86023")) (; ";")) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" (identifier "free") (argument_list "(*(void **)((int)pppuVar15 + -0x10))" (( "(") (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(void **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(uVar12 + 0x30)" (* "*") (cast_expression "(undefined4 *)(uVar12 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x30)" (( "(") (binary_expression "uVar12 + 0x30" (identifier "uVar12") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8602c")) (; ";")) (expression_statement "pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));" (assignment_expression "pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10))" (identifier "pvVar4") (= "=") (call_expression "malloc(*(size_t *)((int)pppuVar15 + -0x10))" (identifier "malloc") (argument_list "(*(size_t *)((int)pppuVar15 + -0x10))" (( "(") (pointer_expression "*(size_t *)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(size_t *)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "*(void **)(uVar12 + 0x18) = pvVar4;" (assignment_expression "*(void **)(uVar12 + 0x18) = pvVar4" (pointer_expression "*(void **)(uVar12 + 0x18)" (* "*") (cast_expression "(void **)(uVar12 + 0x18)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar12 + 0x18)" (( "(") (binary_expression "uVar12 + 0x18" (identifier "uVar12") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "pvVar4")) (; ";")) (if_statement "if (pvVar4 == (void *)0x0) {\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }" (if "if") (parenthesized_expression "(pvVar4 == (void *)0x0)" (( "(") (binary_expression "pvVar4 == (void *)0x0" (identifier "pvVar4") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *(undefined4 *)(uVar12 + 0x38) = 0;\n            *(undefined1 *)(__ptr + 9) = 0;\n            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n            iVar9 = 3;\n            goto LAB_00085999;\n          }" ({ "{") (expression_statement "*(undefined4 *)(uVar12 + 0x38) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x38) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x38)" (* "*") (cast_expression "(undefined4 *)(uVar12 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x38)" (( "(") (binary_expression "uVar12 + 0x38" (identifier "uVar12") (+ "+") (number_literal "0x38")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;" (if "if") (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x44) == 0)" (( "(") (binary_expression "*(int *)((int)pppuVar15 + 0x44) == 0" (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00085820;" (goto "goto") (statement_identifier "LAB_00085820") (; ";"))) (expression_statement "iVar9 = 3;" (assignment_expression "iVar9 = 3" (identifier "iVar9") (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_00085999;" (goto "goto") (statement_identifier "LAB_00085999") (; ";")) (} "}"))) (expression_statement "uVar5 = __ptr[0x25];" (assignment_expression "uVar5 = __ptr[0x25]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "uVar8 = __ptr[0x24];" (assignment_expression "uVar8 = __ptr[0x24]" (identifier "uVar8") (= "=") (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(uVar12 + 0x68) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x68) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x68)" (* "*") (cast_expression "(undefined4 *)(uVar12 + 0x68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x68)" (( "(") (binary_expression "uVar12 + 0x68" (identifier "uVar12") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(uVar12 + 0x40) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x40) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x40)" (* "*") (cast_expression "(undefined4 *)(uVar12 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x40)" (( "(") (binary_expression "uVar12 + 0x40" (identifier "uVar12") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(uVar12 + 0x50) = 1;" (assignment_expression "*(undefined1 *)(uVar12 + 0x50) = 1" (pointer_expression "*(undefined1 *)(uVar12 + 0x50)" (* "*") (cast_expression "(undefined1 *)(uVar12 + 0x50)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x50)" (( "(") (binary_expression "uVar12 + 0x50" (identifier "uVar12") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(uVar12 + 0x6ee4) = 0;" (assignment_expression "*(undefined4 *)(uVar12 + 0x6ee4) = 0" (pointer_expression "*(undefined4 *)(uVar12 + 0x6ee4)" (* "*") (cast_expression "(undefined4 *)(uVar12 + 0x6ee4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x6ee4)" (( "(") (binary_expression "uVar12 + 0x6ee4" (identifier "uVar12") (+ "+") (number_literal "0x6ee4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar8 < uVar5) {\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }" (if "if") (parenthesized_expression "(uVar8 < uVar5)" (( "(") (binary_expression "uVar8 < uVar5" (identifier "uVar8") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n          __ptr[0x24] = uVar8 + 1;\n          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);\n          uVar12 = uVar8 + 1;\n          while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }\n        }" ({ "{") (expression_statement "__ptr[0x24] = uVar8 + 1;" (assignment_expression "__ptr[0x24] = uVar8 + 1" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);" (assignment_expression "cVar3 = *(char *)((int)__ptr + uVar8 + 0x98)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((int)__ptr + uVar8 + 0x98)" (* "*") (cast_expression "(char *)((int)__ptr + uVar8 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + uVar8 + 0x98)" (( "(") (binary_expression "(int)__ptr + uVar8 + 0x98" (binary_expression "(int)__ptr + uVar8" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (identifier "uVar8")) (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "uVar12 = uVar8 + 1;" (assignment_expression "uVar12 = uVar8 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (while_statement "while( true ) {\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            if (cVar3 != '\0') goto LAB_00085fed;\n            if (uVar12 == uVar5) break;\n            __ptr[0x24] = uVar12 + 1;\n            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);\n            uVar12 = uVar12 + 1;\n          }" ({ "{") (if_statement "if (cVar3 != '\0') goto LAB_00085fed;" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00085fed;" (goto "goto") (statement_identifier "LAB_00085fed") (; ";"))) (if_statement "if (uVar12 == uVar5) break;" (if "if") (parenthesized_expression "(uVar12 == uVar5)" (( "(") (binary_expression "uVar12 == uVar5" (identifier "uVar12") (== "==") (identifier "uVar5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "__ptr[0x24] = uVar12 + 1;" (assignment_expression "__ptr[0x24] = uVar12 + 1" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);" (assignment_expression "cVar3 = *(char *)((int)__ptr + uVar12 + 0x98)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)((int)__ptr + uVar12 + 0x98)" (* "*") (cast_expression "(char *)((int)__ptr + uVar12 + 0x98)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + uVar12 + 0x98)" (( "(") (binary_expression "(int)__ptr + uVar12 + 0x98" (binary_expression "(int)__ptr + uVar12" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (identifier "uVar12")) (+ "+") (number_literal "0x98")) () ")"))))) (; ";")) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "__ptr[0x24] = 0;" (assignment_expression "__ptr[0x24] = 0" (subscript_expression "__ptr[0x24]" (identifier "__ptr") ([ "[") (number_literal "0x24") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[0xf] = 0;" (assignment_expression "__ptr[0xf] = 0" (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[0x10] = 0;" (assignment_expression "__ptr[0x10] = 0" (subscript_expression "__ptr[0x10]" (identifier "__ptr") ([ "[") (number_literal "0x10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[0x11] = 0;" (assignment_expression "__ptr[0x11] = 0" (subscript_expression "__ptr[0x11]" (identifier "__ptr") ([ "[") (number_literal "0x11") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[0x12] = 0;" (assignment_expression "__ptr[0x12] = 0" (subscript_expression "__ptr[0x12]" (identifier "__ptr") ([ "[") (number_literal "0x12") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*__ptr = 3;" (assignment_expression "*__ptr = 3" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "3")) (; ";")) (labeled_statement "switchD_000856db_caseD_85d53:\n        __ptr[4] = ((int *)pppuVar15)[0xe];" (statement_identifier "switchD_000856db_caseD_85d53") (: ":") (expression_statement "__ptr[4] = ((int *)pppuVar15)[0xe];" (assignment_expression "__ptr[4] = ((int *)pppuVar15)[0xe]" (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]"))) (; ";"))) (expression_statement "__ptr[5] = ((int *)pppuVar15)[0x11];" (assignment_expression "__ptr[5] = ((int *)pppuVar15)[0x11]" (subscript_expression "__ptr[5]" (identifier "__ptr") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "((int *)pppuVar15)[-1] = 0x85d70;" (assignment_expression "((int *)pppuVar15)[-1] = 0x85d70" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x85d70")) (; ";")) (expression_statement "iVar9 = FUN_00084c5e();" (assignment_expression "iVar9 = FUN_00084c5e()" (identifier "iVar9") (= "=") (call_expression "FUN_00084c5e()" (identifier "FUN_00084c5e") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "((int *)pppuVar15)[7] = iVar9;" (assignment_expression "((int *)pppuVar15)[7] = iVar9" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];" (assignment_expression "uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf]" (identifier "uVar8") (= "=") (binary_expression "(((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf]" (parenthesized_expression "(((int *)pppuVar15)[0xe] - __ptr[4])" (( "(") (binary_expression "((int *)pppuVar15)[0xe] - __ptr[4]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (- "-") (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]"))) () ")")) (+ "+") (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")))) (; ";")) (expression_statement "uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);" (assignment_expression "uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" (identifier "uVar10") (= "=") (binary_expression "__ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" (subscript_expression "__ptr[0x10]" (identifier "__ptr") ([ "[") (number_literal "0x10") (] "]")) (+ "+") (cast_expression "(uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" (identifier "CARRY4") (argument_list "(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf])" (( "(") (binary_expression "((int *)pppuVar15)[0xe] - __ptr[4]" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (- "-") (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]"))) (, ",") (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")) () ")")))))) (; ";")) (expression_statement "__ptr[0xf] = uVar8;" (assignment_expression "__ptr[0xf] = uVar8" (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "__ptr[0x10] = uVar10;" (assignment_expression "__ptr[0x10] = uVar10" (subscript_expression "__ptr[0x10]" (identifier "__ptr") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "iVar7 = ((int *)pppuVar15)[0x11];" (assignment_expression "iVar7 = ((int *)pppuVar15)[0x11]" (identifier "iVar7") (= "=") (subscript_expression "((int *)pppuVar15)[0x11]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "uVar5 = __ptr[5];" (assignment_expression "uVar5 = __ptr[5]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[5]" (identifier "__ptr") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "((int *)pppuVar15)[9] = uVar5;" (assignment_expression "((int *)pppuVar15)[9] = uVar5" (subscript_expression "((int *)pppuVar15)[9]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar5 = iVar7 - uVar5;" (assignment_expression "uVar5 = iVar7 - uVar5" (identifier "uVar5") (= "=") (binary_expression "iVar7 - uVar5" (identifier "iVar7") (- "-") (identifier "uVar5"))) (; ";")) (expression_statement "((int *)pppuVar15)[10] = uVar5;" (assignment_expression "((int *)pppuVar15)[10] = uVar5" (subscript_expression "((int *)pppuVar15)[10]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "uVar12 = uVar5 + __ptr[0x11];" (assignment_expression "uVar12 = uVar5 + __ptr[0x11]" (identifier "uVar12") (= "=") (binary_expression "uVar5 + __ptr[0x11]" (identifier "uVar5") (+ "+") (subscript_expression "__ptr[0x11]" (identifier "__ptr") ([ "[") (number_literal "0x11") (] "]")))) (; ";")) (expression_statement "uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);" (assignment_expression "uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11])" (identifier "uVar5") (= "=") (binary_expression "__ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11])" (subscript_expression "__ptr[0x12]" (identifier "__ptr") ([ "[") (number_literal "0x12") (] "]")) (+ "+") (cast_expression "(uint)CARRY4(uVar5,__ptr[0x11])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,__ptr[0x11])" (identifier "CARRY4") (argument_list "(uVar5,__ptr[0x11])" (( "(") (identifier "uVar5") (, ",") (subscript_expression "__ptr[0x11]" (identifier "__ptr") ([ "[") (number_literal "0x11") (] "]")) () ")")))))) (; ";")) (expression_statement "__ptr[0x11] = uVar12;" (assignment_expression "__ptr[0x11] = uVar12" (subscript_expression "__ptr[0x11]" (identifier "__ptr") ([ "[") (number_literal "0x11") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "__ptr[0x12] = uVar5;" (assignment_expression "__ptr[0x12] = uVar5" (subscript_expression "__ptr[0x12]" (identifier "__ptr") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }" (if "if") (parenthesized_expression "((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)))" (( "(") (binary_expression "(__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||\n           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))" (parenthesized_expression "(__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8))" (( "(") (binary_expression "__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)" (binary_expression "__ptr[0xb] < uVar10" (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]")) (< "<") (identifier "uVar10")) (|| "||") (binary_expression "__ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)" (binary_expression "__ptr[0xb] - uVar10" (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]")) (- "-") (identifier "uVar10")) (< "<") (call_expression "(uint)(__ptr[10] < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(__ptr[10] < uVar8)" (( "(") (binary_expression "__ptr[10] < uVar8" (subscript_expression "__ptr[10]" (identifier "__ptr") ([ "[") (number_literal "10") (] "]")) (< "<") (identifier "uVar8")) () ")"))))) () ")")) (|| "||") (parenthesized_expression "(__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))" (( "(") (binary_expression "__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)" (binary_expression "__ptr[0xd] < uVar5" (subscript_expression "__ptr[0xd]" (identifier "__ptr") ([ "[") (number_literal "0xd") (] "]")) (< "<") (identifier "uVar5")) (|| "||") (binary_expression "__ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12)" (binary_expression "__ptr[0xd] - uVar5" (subscript_expression "__ptr[0xd]" (identifier "__ptr") ([ "[") (number_literal "0xd") (] "]")) (- "-") (identifier "uVar5")) (< "<") (call_expression "(uint)(__ptr[0xc] < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(__ptr[0xc] < uVar12)" (( "(") (binary_expression "__ptr[0xc] < uVar12" (subscript_expression "__ptr[0xc]" (identifier "__ptr") ([ "[") (number_literal "0xc") (] "]")) (< "<") (identifier "uVar12")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n          iVar9 = 7;\n          goto LAB_00085a3d;\n        }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_00085a3d;" (goto "goto") (statement_identifier "LAB_00085a3d") (; ";")) (} "}"))) (if_statement "if (__ptr[7] == 1) {\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }" (if "if") (parenthesized_expression "(__ptr[7] == 1)" (( "(") (binary_expression "__ptr[7] == 1" (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);\n          ((int *)pppuVar15)[-5] = 0x85df3;\n          uVar5 = FUN_000af9bf();\n          __ptr[6] = ~uVar5;\n          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);\n        }" ({ "{") (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" (* "*") (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" (( "(") (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "0xcf8")) () ")"))))) (; ";")) (expression_statement "((int *)pppuVar15)[-5] = 0x85df3;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85df3" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x85df3")) (; ";")) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" (identifier "uVar5") (= "=") (call_expression "FUN_000af9bf()" (identifier "FUN_000af9bf") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "__ptr[6] = ~uVar5;" (assignment_expression "__ptr[6] = ~uVar5" (subscript_expression "__ptr[6]" (identifier "__ptr") ([ "[") (number_literal "6") (] "]")) (= "=") (unary_expression "~uVar5" (~ "~") (identifier "uVar5"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int *)pppuVar15 + -1)" (( "(") (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (} "}"))) (if_statement "if (((int *)pppuVar15)[7] != 1) {\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }" (if "if") (parenthesized_expression "(((int *)pppuVar15)[7] != 1)" (( "(") (binary_expression "((int *)pppuVar15)[7] != 1" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          iVar9 = ((int *)pppuVar15)[7];\n          goto LAB_00085af4;\n        }" ({ "{") (expression_statement "iVar9 = ((int *)pppuVar15)[7];" (assignment_expression "iVar9 = ((int *)pppuVar15)[7]" (identifier "iVar9") (= "=") (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "7") (] "]"))) (; ";")) (goto_statement "goto LAB_00085af4;" (goto "goto") (statement_identifier "LAB_00085af4") (; ";")) (} "}"))) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" (identifier "piVar16") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;" (if "if") (parenthesized_expression "(((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf]))" (( "(") (binary_expression "((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&\n           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])" (parenthesized_expression "((__ptr[0xb] & __ptr[10]) != 0xffffffff)" (( "(") (binary_expression "(__ptr[0xb] & __ptr[10]) != 0xffffffff" (parenthesized_expression "(__ptr[0xb] & __ptr[10])" (( "(") (binary_expression "__ptr[0xb] & __ptr[10]" (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]")) (& "&") (subscript_expression "__ptr[10]" (identifier "__ptr") ([ "[") (number_literal "10") (] "]"))) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (&& "&&") (parenthesized_expression "(__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])" (( "(") (binary_expression "__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf]" (binary_expression "__ptr[0xb] != __ptr[0x10]" (subscript_expression "__ptr[0xb]" (identifier "__ptr") ([ "[") (number_literal "0xb") (] "]")) (!= "!=") (subscript_expression "__ptr[0x10]" (identifier "__ptr") ([ "[") (number_literal "0x10") (] "]"))) (|| "||") (binary_expression "__ptr[10] != __ptr[0xf]" (subscript_expression "__ptr[10]" (identifier "__ptr") ([ "[") (number_literal "10") (] "]")) (!= "!=") (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")))) () ")"))) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "uVar5 = __ptr[0x11];" (assignment_expression "uVar5 = __ptr[0x11]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x11]" (identifier "__ptr") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (if_statement "if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;" (if "if") (parenthesized_expression "(((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5))" (( "(") (binary_expression "((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&\n           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)" (parenthesized_expression "((__ptr[0xd] & __ptr[0xc]) != 0xffffffff)" (( "(") (binary_expression "(__ptr[0xd] & __ptr[0xc]) != 0xffffffff" (parenthesized_expression "(__ptr[0xd] & __ptr[0xc])" (( "(") (binary_expression "__ptr[0xd] & __ptr[0xc]" (subscript_expression "__ptr[0xd]" (identifier "__ptr") ([ "[") (number_literal "0xd") (] "]")) (& "&") (subscript_expression "__ptr[0xc]" (identifier "__ptr") ([ "[") (number_literal "0xc") (] "]"))) () ")")) (!= "!=") (number_literal "0xffffffff")) () ")")) (&& "&&") (parenthesized_expression "(__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)" (( "(") (binary_expression "__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5" (binary_expression "__ptr[0xd] != __ptr[0x12]" (subscript_expression "__ptr[0xd]" (identifier "__ptr") ([ "[") (number_literal "0xd") (] "]")) (!= "!=") (subscript_expression "__ptr[0x12]" (identifier "__ptr") ([ "[") (number_literal "0x12") (] "]"))) (|| "||") (binary_expression "__ptr[0xc] != uVar5" (subscript_expression "__ptr[0xc]" (identifier "__ptr") ([ "[") (number_literal "0xc") (] "]")) (!= "!=") (identifier "uVar5"))) () ")"))) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "uVar12 = __ptr[0x15];" (assignment_expression "uVar12 = __ptr[0x15]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[0x15]" (identifier "__ptr") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "uVar10 = __ptr[0xf] + __ptr[0x15];" (assignment_expression "uVar10 = __ptr[0xf] + __ptr[0x15]" (identifier "uVar10") (= "=") (binary_expression "__ptr[0xf] + __ptr[0x15]" (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (subscript_expression "__ptr[0x15]" (identifier "__ptr") ([ "[") (number_literal "0x15") (] "]")))) (; ";")) (expression_statement "uVar8 = __ptr[0xe] + uVar10;" (assignment_expression "uVar8 = __ptr[0xe] + uVar10" (identifier "uVar8") (= "=") (binary_expression "__ptr[0xe] + uVar10" (subscript_expression "__ptr[0xe]" (identifier "__ptr") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);" (assignment_expression "bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (identifier "bVar19") (= "=") (pointer_expression "*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (* "*") (cast_expression "(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*pppuVar15 + -0x15628 + __ptr[7])" (( "(") (binary_expression "(int)*pppuVar15 + -0x15628 + __ptr[7]" (binary_expression "(int)*pppuVar15 + -0x15628" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "-0x15628")) (+ "+") (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]"))) () ")"))))) (; ";")) (expression_statement "__ptr[0x15] = uVar8 + bVar19;" (assignment_expression "__ptr[0x15] = uVar8 + bVar19" (subscript_expression "__ptr[0x15]" (identifier "__ptr") ([ "[") (number_literal "0x15") (] "]")) (= "=") (binary_expression "uVar8 + bVar19" (identifier "uVar8") (+ "+") (identifier "bVar19"))) (; ";")) (expression_statement "__ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);" (assignment_expression "__ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19)" (subscript_expression "__ptr[0x16]" (identifier "__ptr") ([ "[") (number_literal "0x16") (] "]")) (= "=") (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19)" (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +\n                      (uint)CARRY4(__ptr[0xe],uVar10)" (binary_expression "__ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12)" (binary_expression "__ptr[0x10] + __ptr[0x16]" (subscript_expression "__ptr[0x10]" (identifier "__ptr") ([ "[") (number_literal "0x10") (] "]")) (+ "+") (subscript_expression "__ptr[0x16]" (identifier "__ptr") ([ "[") (number_literal "0x16") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(__ptr[0xf],uVar12)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(__ptr[0xf],uVar12)" (identifier "CARRY4") (argument_list "(__ptr[0xf],uVar12)" (( "(") (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar12") () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(__ptr[0xe],uVar10)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(__ptr[0xe],uVar10)" (identifier "CARRY4") (argument_list "(__ptr[0xe],uVar10)" (( "(") (subscript_expression "__ptr[0xe]" (identifier "__ptr") ([ "[") (number_literal "0xe") (] "]")) (, ",") (identifier "uVar10") () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar8,(uint)bVar19)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar8,(uint)bVar19)" (identifier "CARRY4") (argument_list "(uVar8,(uint)bVar19)" (( "(") (identifier "uVar8") (, ",") (cast_expression "(uint)bVar19" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar19")) () ")")))))) (; ";")) (expression_statement "puVar1 = __ptr + 0x17;" (assignment_expression "puVar1 = __ptr + 0x17" (identifier "puVar1") (= "=") (binary_expression "__ptr + 0x17" (identifier "__ptr") (+ "+") (number_literal "0x17"))) (; ";")) (expression_statement "uVar12 = *puVar1;" (assignment_expression "uVar12 = *puVar1" (identifier "uVar12") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + uVar5;" (assignment_expression "*puVar1 = *puVar1 + uVar5" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + uVar5" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "__ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);" (assignment_expression "__ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5)" (subscript_expression "__ptr[0x18]" (identifier "__ptr") ([ "[") (number_literal "0x18") (] "]")) (= "=") (binary_expression "__ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5)" (binary_expression "__ptr[0x18] + __ptr[0x12]" (subscript_expression "__ptr[0x18]" (identifier "__ptr") ([ "[") (number_literal "0x18") (] "]")) (+ "+") (subscript_expression "__ptr[0x12]" (identifier "__ptr") ([ "[") (number_literal "0x12") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar12,uVar5)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar12,uVar5)" (identifier "CARRY4") (argument_list "(uVar12,uVar5)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar5") () ")")))))) (; ";")) (expression_statement "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);" (assignment_expression "((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8)" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)((int)*pppuVar15 + 0xcf8)" (* "*") (cast_expression "(undefined4 *)((int)*pppuVar15 + 0xcf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*pppuVar15 + 0xcf8)" (( "(") (binary_expression "(int)*pppuVar15 + 0xcf8" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "0xcf8")) () ")"))))) (; ";")) (expression_statement "((int *)pppuVar15)[-5] = 0x85e83;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85e83" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x85e83")) (; ";")) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" (identifier "uVar5") (= "=") (call_expression "FUN_000af9bf()" (identifier "FUN_000af9bf") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "__ptr[0x19] = ~uVar5;" (assignment_expression "__ptr[0x19] = ~uVar5" (subscript_expression "__ptr[0x19]" (identifier "__ptr") ([ "[") (number_literal "0x19") (] "]")) (= "=") (unary_expression "~uVar5" (~ "~") (identifier "uVar5"))) (; ";")) (expression_statement "puVar1 = __ptr + 0x13;" (assignment_expression "puVar1 = __ptr + 0x13" (identifier "puVar1") (= "=") (binary_expression "__ptr + 0x13" (identifier "__ptr") (+ "+") (number_literal "0x13"))) (; ";")) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" (identifier "uVar5") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + 1;" (assignment_expression "*puVar1 = *puVar1 + 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + 1" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);" (assignment_expression "__ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5)" (subscript_expression "__ptr[0x14]" (identifier "__ptr") ([ "[") (number_literal "0x14") (] "]")) (= "=") (binary_expression "__ptr[0x14] + (uint)(0xfffffffe < uVar5)" (subscript_expression "__ptr[0x14]" (identifier "__ptr") ([ "[") (number_literal "0x14") (] "]")) (+ "+") (call_expression "(uint)(0xfffffffe < uVar5)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffe < uVar5)" (( "(") (binary_expression "0xfffffffe < uVar5" (number_literal "0xfffffffe") (< "<") (identifier "uVar5")) () ")"))))) (; ";")) (expression_statement "*__ptr = 4;" (assignment_expression "*__ptr = 4" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "4")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);" (assignment_expression "pppuVar15 = (undefined ***)((int *)pppuVar15 + -1)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int *)pppuVar15 + -1)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int *)pppuVar15 + -1)" (( "(") (binary_expression "(int *)pppuVar15 + -1" (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (labeled_statement "switchD_000856db_caseD_85e9a:\n        uVar12 = __ptr[0xf];" (statement_identifier "switchD_000856db_caseD_85e9a") (: ":") (expression_statement "uVar12 = __ptr[0xf];" (assignment_expression "uVar12 = __ptr[0xf]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]"))) (; ";"))) (expression_statement "uVar8 = __ptr[0x10];" (assignment_expression "uVar8 = __ptr[0x10]" (identifier "uVar8") (= "=") (subscript_expression "__ptr[0x10]" (identifier "__ptr") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (if_statement "if ((uVar12 & 3) != 0) {\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }" (if "if") (parenthesized_expression "((uVar12 & 3) != 0)" (( "(") (binary_expression "(uVar12 & 3) != 0" (parenthesized_expression "(uVar12 & 3)" (( "(") (binary_expression "uVar12 & 3" (identifier "uVar12") (& "&") (number_literal "3")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar10 = *(uint *)((int)pppuVar15 + 0x38);\n          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);\n          if (uVar10 == uVar5) goto LAB_000858bd;\n          iVar9 = *(int *)((int)pppuVar15 + 0x34);\n          uVar11 = uVar10 + 1;\n          *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n          piVar16 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;\n          uVar8 = uVar8 + (0xfffffffe < uVar12);\n          while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }\n        }" ({ "{") (expression_statement "uVar10 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar10 = *(uint *)((int)pppuVar15 + 0x38)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x3c);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x3c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x3c)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x3c)" (( "(") (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (if_statement "if (uVar10 == uVar5) goto LAB_000858bd;" (if "if") (parenthesized_expression "(uVar10 == uVar5)" (( "(") (binary_expression "uVar10 == uVar5" (identifier "uVar10") (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";"))) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x34);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x34)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x34)" (( "(") (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar11 = uVar10 + 1;" (assignment_expression "uVar11 = uVar10 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar11;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar11" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" (identifier "piVar16") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;" (if "if") (parenthesized_expression "(*(char *)(iVar9 + uVar10) != '\0')" (( "(") (binary_expression "*(char *)(iVar9 + uVar10) != '\0'" (pointer_expression "*(char *)(iVar9 + uVar10)" (* "*") (cast_expression "(char *)(iVar9 + uVar10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + uVar10)" (( "(") (binary_expression "iVar9 + uVar10" (identifier "iVar9") (+ "+") (identifier "uVar10")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (expression_statement "uVar8 = uVar8 + (0xfffffffe < uVar12);" (assignment_expression "uVar8 = uVar8 + (0xfffffffe < uVar12)" (identifier "uVar8") (= "=") (binary_expression "uVar8 + (0xfffffffe < uVar12)" (identifier "uVar8") (+ "+") (parenthesized_expression "(0xfffffffe < uVar12)" (( "(") (binary_expression "0xfffffffe < uVar12" (number_literal "0xfffffffe") (< "<") (identifier "uVar12")) () ")")))) (; ";")) (while_statement "while( true ) {\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            uVar12 = uVar12 + 1;\n            __ptr[0xf] = uVar12;\n            __ptr[0x10] = uVar8;\n            if ((uVar12 & 3) == 0) break;\n            if (uVar11 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar11 + 1;\n            *(uint *)((int)pppuVar15 + 0x38) = uVar11;\n            uVar8 = uVar8 + (0xfffffffe < uVar12);\n            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;\n          }" ({ "{") (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__ptr[0xf] = uVar12;" (assignment_expression "__ptr[0xf] = uVar12" (subscript_expression "__ptr[0xf]" (identifier "__ptr") ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "__ptr[0x10] = uVar8;" (assignment_expression "__ptr[0x10] = uVar8" (subscript_expression "__ptr[0x10]" (identifier "__ptr") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (if_statement "if ((uVar12 & 3) == 0) break;" (if "if") (parenthesized_expression "((uVar12 & 3) == 0)" (( "(") (binary_expression "(uVar12 & 3) == 0" (parenthesized_expression "(uVar12 & 3)" (( "(") (binary_expression "uVar12 & 3" (identifier "uVar12") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (uVar11 == uVar5) goto LAB_000858bd;" (if "if") (parenthesized_expression "(uVar11 == uVar5)" (( "(") (binary_expression "uVar11 == uVar5" (identifier "uVar11") (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";"))) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar11;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar11" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "uVar8 = uVar8 + (0xfffffffe < uVar12);" (assignment_expression "uVar8 = uVar8 + (0xfffffffe < uVar12)" (identifier "uVar8") (= "=") (binary_expression "uVar8 + (0xfffffffe < uVar12)" (identifier "uVar8") (+ "+") (parenthesized_expression "(0xfffffffe < uVar12)" (( "(") (binary_expression "0xfffffffe < uVar12" (number_literal "0xfffffffe") (< "<") (identifier "uVar12")) () ")")))) (; ";")) (if_statement "if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;" (if "if") (parenthesized_expression "(*(char *)(iVar9 + -1 + uVar11) != '\0')" (( "(") (binary_expression "*(char *)(iVar9 + -1 + uVar11) != '\0'" (pointer_expression "*(char *)(iVar9 + -1 + uVar11)" (* "*") (cast_expression "(char *)(iVar9 + -1 + uVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -1 + uVar11)" (( "(") (binary_expression "iVar9 + -1 + uVar11" (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar11")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (} "}"))) (} "}"))) (expression_statement "*__ptr = 5;" (assignment_expression "*__ptr = 5" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "5")) (; ";")) (labeled_statement "switchD_000856db_caseD_85eea:\n        if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" (statement_identifier "switchD_000856db_caseD_85eea") (: ":") (if_statement "if (__ptr[7] == 1) {\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }\n        else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" (if "if") (parenthesized_expression "(__ptr[7] == 1)" (( "(") (binary_expression "__ptr[7] == 1" (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          uVar12 = ((int *)pppuVar15)[0xf];\n          iVar9 = ((int *)pppuVar15)[0xd];\n          uVar5 = ((int *)pppuVar15)[0xe];\n          if (uVar12 == uVar5) goto LAB_000858bd;\n          uVar10 = __ptr[6];\n          ((int *)pppuVar15)[7] = uVar10;\n          uVar11 = __ptr[1];\n          uVar8 = uVar5 + 1;\n          ((int *)pppuVar15)[0xe] = uVar8;\n          piVar13 = (int *)pppuVar15;\n          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;\n          uVar11 = uVar11 + 8;\n          __ptr[1] = uVar11;\n          while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }\n          __ptr[6] = 0;\n          __ptr[1] = 0;\n        }" ({ "{") (expression_statement "uVar12 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar12 = ((int *)pppuVar15)[0xf]" (identifier "uVar12") (= "=") (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "iVar9 = ((int *)pppuVar15)[0xd];" (assignment_expression "iVar9 = ((int *)pppuVar15)[0xd]" (identifier "iVar9") (= "=") (subscript_expression "((int *)pppuVar15)[0xd]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "uVar5 = ((int *)pppuVar15)[0xe];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xe]" (identifier "uVar5") (= "=") (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if (uVar12 == uVar5) goto LAB_000858bd;" (if "if") (parenthesized_expression "(uVar12 == uVar5)" (( "(") (binary_expression "uVar12 == uVar5" (identifier "uVar12") (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";"))) (expression_statement "uVar10 = __ptr[6];" (assignment_expression "uVar10 = __ptr[6]" (identifier "uVar10") (= "=") (subscript_expression "__ptr[6]" (identifier "__ptr") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "((int *)pppuVar15)[7] = uVar10;" (assignment_expression "((int *)pppuVar15)[7] = uVar10" (subscript_expression "((int *)pppuVar15)[7]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "uVar11 = __ptr[1];" (assignment_expression "uVar11 = __ptr[1]" (identifier "uVar11") (= "=") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar8 = uVar5 + 1;" (assignment_expression "uVar8 = uVar5 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "((int *)pppuVar15)[0xe] = uVar8;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar8" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" (identifier "piVar13") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))\n          goto LAB_00085802;" (if "if") (parenthesized_expression "(*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))" (( "(") (binary_expression "*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f))" (pointer_expression "*(char *)(iVar9 + uVar5)" (* "*") (cast_expression "(char *)(iVar9 + uVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + uVar5)" (( "(") (binary_expression "iVar9 + uVar5" (identifier "iVar9") (+ "+") (identifier "uVar5")) () ")")))) (!= "!=") (cast_expression "(char)(uVar10 >> ((byte)uVar11 & 0x1f))" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar10 >> ((byte)uVar11 & 0x1f))" (( "(") (binary_expression "uVar10 >> ((byte)uVar11 & 0x1f)" (identifier "uVar10") (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) () ")")) (goto_statement "goto LAB_00085802;" (goto "goto") (statement_identifier "LAB_00085802") (; ";"))) (expression_statement "uVar11 = uVar11 + 8;" (assignment_expression "uVar11 = uVar11 + 8" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 8" (identifier "uVar11") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "__ptr[1] = uVar11;" (assignment_expression "__ptr[1] = uVar11" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (while_statement "while (uVar11 < 0x20) {\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }" (while "while") (parenthesized_expression "(uVar11 < 0x20)" (( "(") (binary_expression "uVar11 < 0x20" (identifier "uVar11") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n            uVar5 = uVar12;\n            if (uVar12 == uVar8) goto LAB_000858bd;\n            uVar11 = __ptr[1];\n            uVar8 = uVar8 + 1;\n            ((int *)pppuVar15)[0xe] = uVar8;\n            if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;\n            uVar11 = uVar11 + 8;\n            __ptr[1] = uVar11;\n          }" ({ "{") (expression_statement "uVar5 = uVar12;" (assignment_expression "uVar5 = uVar12" (identifier "uVar5") (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (uVar12 == uVar8) goto LAB_000858bd;" (if "if") (parenthesized_expression "(uVar12 == uVar8)" (( "(") (binary_expression "uVar12 == uVar8" (identifier "uVar12") (== "==") (identifier "uVar8")) () ")")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";"))) (expression_statement "uVar11 = __ptr[1];" (assignment_expression "uVar11 = __ptr[1]" (identifier "uVar11") (= "=") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "((int *)pppuVar15)[0xe] = uVar8;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar8" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar8")) (; ";")) (if_statement "if (*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;" (if "if") (parenthesized_expression "(*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f)))" (( "(") (binary_expression "*(char *)(iVar9 + -1 + uVar8) !=\n                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" (pointer_expression "*(char *)(iVar9 + -1 + uVar8)" (* "*") (cast_expression "(char *)(iVar9 + -1 + uVar8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -1 + uVar8)" (( "(") (binary_expression "iVar9 + -1 + uVar8" (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1")) (+ "+") (identifier "uVar8")) () ")")))) (!= "!=") (cast_expression "(char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))" (( "(") (binary_expression "(uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f)" (subscript_expression "(uint)((int *)pppuVar15)[7]" (call_expression "(uint)((int *)pppuVar15)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")"))) ([ "[") (number_literal "7") (] "]")) (>> ">>") (parenthesized_expression "((byte)uVar11 & 0x1f)" (( "(") (binary_expression "(byte)uVar11 & 0x1f" (cast_expression "(byte)uVar11" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar11")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) () ")")) (goto_statement "goto LAB_00085802;" (goto "goto") (statement_identifier "LAB_00085802") (; ";"))) (expression_statement "uVar11 = uVar11 + 8;" (assignment_expression "uVar11 = uVar11 + 8" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 8" (identifier "uVar11") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "__ptr[1] = uVar11;" (assignment_expression "__ptr[1] = uVar11" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "__ptr[6] = 0;" (assignment_expression "__ptr[6] = 0" (subscript_expression "__ptr[6]" (identifier "__ptr") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" (else "else") (compound_statement "{\n          uVar12 = __ptr[1];\n          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);\n          if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }\n          __ptr[1] = 0;\n        }" ({ "{") (expression_statement "uVar12 = __ptr[1];" (assignment_expression "uVar12 = __ptr[1]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);" (assignment_expression "uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (identifier "uVar8") (= "=") (binary_expression "(uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*pppuVar15 + -0x15628 + __ptr[7])" (( "(") (binary_expression "(int)*pppuVar15 + -0x15628 + __ptr[7]" (binary_expression "(int)*pppuVar15 + -0x15628" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "-0x15628")) (+ "+") (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]"))) () ")"))))) (; ";")) (if_statement "if (uVar12 < uVar8) {\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }" (if "if") (parenthesized_expression "(uVar12 < uVar8)" (( "(") (binary_expression "uVar12 < uVar8" (identifier "uVar12") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n            uVar10 = ((int *)pppuVar15)[0xe];\n            uVar5 = ((int *)pppuVar15)[0xf];\n            if (uVar10 == uVar5) goto LAB_000858bd;\n            uVar11 = uVar10;\n            while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }\n            ((int *)pppuVar15)[0xe] = uVar11;\n          }" ({ "{") (expression_statement "uVar10 = ((int *)pppuVar15)[0xe];" (assignment_expression "uVar10 = ((int *)pppuVar15)[0xe]" (identifier "uVar10") (= "=") (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "uVar5 = ((int *)pppuVar15)[0xf];" (assignment_expression "uVar5 = ((int *)pppuVar15)[0xf]" (identifier "uVar5") (= "=") (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if (uVar10 == uVar5) goto LAB_000858bd;" (if "if") (parenthesized_expression "(uVar10 == uVar5)" (( "(") (binary_expression "uVar10 == uVar5" (identifier "uVar10") (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";"))) (expression_statement "uVar11 = uVar10;" (assignment_expression "uVar11 = uVar10" (identifier "uVar11") (= "=") (identifier "uVar10")) (; ";")) (while_statement "while( true ) {\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              uVar11 = uVar11 + 1;\n              if (uVar11 == (uVar10 - uVar12) + uVar8) break;\n              if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }\n            }" ({ "{") (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar11 == (uVar10 - uVar12) + uVar8) break;" (if "if") (parenthesized_expression "(uVar11 == (uVar10 - uVar12) + uVar8)" (( "(") (binary_expression "uVar11 == (uVar10 - uVar12) + uVar8" (identifier "uVar11") (== "==") (binary_expression "(uVar10 - uVar12) + uVar8" (parenthesized_expression "(uVar10 - uVar12)" (( "(") (binary_expression "uVar10 - uVar12" (identifier "uVar10") (- "-") (identifier "uVar12")) () ")")) (+ "+") (identifier "uVar8"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (uVar11 == uVar5) {\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }" (if "if") (parenthesized_expression "(uVar11 == uVar5)" (( "(") (binary_expression "uVar11 == uVar5" (identifier "uVar11") (== "==") (identifier "uVar5")) () ")")) (compound_statement "{\n                ((int *)pppuVar15)[0xe] = uVar5;\n                __ptr[1] = (uVar11 - uVar10) + uVar12;\n                goto LAB_000858bd;\n              }" ({ "{") (expression_statement "((int *)pppuVar15)[0xe] = uVar5;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar5" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "__ptr[1] = (uVar11 - uVar10) + uVar12;" (assignment_expression "__ptr[1] = (uVar11 - uVar10) + uVar12" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "(uVar11 - uVar10) + uVar12" (parenthesized_expression "(uVar11 - uVar10)" (( "(") (binary_expression "uVar11 - uVar10" (identifier "uVar11") (- "-") (identifier "uVar10")) () ")")) (+ "+") (identifier "uVar12"))) (; ";")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";")) (} "}"))) (} "}"))) (expression_statement "((int *)pppuVar15)[0xe] = uVar11;" (assignment_expression "((int *)pppuVar15)[0xe] = uVar11" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))))) (expression_statement "*__ptr = 1;" (assignment_expression "*__ptr = 1" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000856cf;" (goto "goto") (statement_identifier "LAB_000856cf") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x85d53:\n      goto switchD_000856db_caseD_85d53;" (case "case") (number_literal "0x85d53") (: ":") (goto_statement "goto switchD_000856db_caseD_85d53;" (goto "goto") (statement_identifier "switchD_000856db_caseD_85d53") (; ";"))) (case_statement "case 0x85e9a:\n      goto switchD_000856db_caseD_85e9a;" (case "case") (number_literal "0x85e9a") (: ":") (goto_statement "goto switchD_000856db_caseD_85e9a;" (goto "goto") (statement_identifier "switchD_000856db_caseD_85e9a") (; ";"))) (case_statement "case 0x85eea:\n      goto switchD_000856db_caseD_85eea;" (case "case") (number_literal "0x85eea") (: ":") (goto_statement "goto switchD_000856db_caseD_85eea;" (goto "goto") (statement_identifier "switchD_000856db_caseD_85eea") (; ";"))) (} "}"))) (labeled_statement "LAB_00085fed:\n    iVar7 = *(int *)((int)piVar16 + 0x44);" (statement_identifier "LAB_00085fed") (: ":") (expression_statement "iVar7 = *(int *)((int)piVar16 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)piVar16 + 0x44)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)piVar16 + 0x44)" (* "*") (cast_expression "(int *)((int)piVar16 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x44)" (( "(") (binary_expression "(int)piVar16 + 0x44" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x44")) () ")"))))) (; ";"))) (expression_statement "iVar9 = 6;" (assignment_expression "iVar9 = 6" (identifier "iVar9") (= "=") (number_literal "6")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar16" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar16"))) (; ";")) (goto_statement "goto LAB_00085a3d;" (goto "goto") (statement_identifier "LAB_00085a3d") (; ";")) (} "}"))) (expression_statement "((int *)pppuVar15)[-1] = 0x855cf;" (assignment_expression "((int *)pppuVar15)[-1] = 0x855cf" (subscript_expression "((int *)pppuVar15)[-1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x855cf")) (; ";")) (expression_statement "uVar5 = FUN_0001b3fd();" (assignment_expression "uVar5 = FUN_0001b3fd()" (identifier "uVar5") (= "=") (call_expression "FUN_0001b3fd()" (identifier "FUN_0001b3fd") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((int)uVar5 < 0) {\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }\n  else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" (if "if") (parenthesized_expression "((int)uVar5 < 0)" (( "(") (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;\n    ((int *)pppuVar15)[-5] = 0x855ea;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\n  }" ({ "{") (expression_statement "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;" (assignment_expression "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-4") (] "]")) (= "=") (binary_expression "(int)*pppuVar15 + -0x515c" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "-0x515c"))) (; ";")) (expression_statement "((int *)pppuVar15)[-5] = 0x855ea;" (assignment_expression "((int *)pppuVar15)[-5] = 0x855ea" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x855ea")) (; ";")) (expression_statement "FUN_0001930a();" (call_expression "FUN_0001930a()" (identifier "FUN_0001930a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "((int *)pppuVar15)[4] = -1;" (assignment_expression "((int *)pppuVar15)[4] = -1" (subscript_expression "((int *)pppuVar15)[4]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "((int *)pppuVar15)[5] = -1;" (assignment_expression "((int *)pppuVar15)[5] = -1" (subscript_expression "((int *)pppuVar15)[5]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" (else "else") (if_statement "if ((uVar5 != 0) || (iVar9 != 1)) {\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" (if "if") (parenthesized_expression "((uVar5 != 0) || (iVar9 != 1))" (( "(") (binary_expression "(uVar5 != 0) || (iVar9 != 1)" (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar9 != 1)" (( "(") (binary_expression "iVar9 != 1" (identifier "iVar9") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n    ((int *)pppuVar15)[0xf] = uVar5;\n    ((int *)pppuVar15)[0xe] = 0;\n    ((int *)pppuVar15)[1] = 0;\n    goto LAB_00085687;\n  }" ({ "{") (expression_statement "((int *)pppuVar15)[0xf] = uVar5;" (assignment_expression "((int *)pppuVar15)[0xf] = uVar5" (subscript_expression "((int *)pppuVar15)[0xf]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xf") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "((int *)pppuVar15)[0xe] = 0;" (assignment_expression "((int *)pppuVar15)[0xe] = 0" (subscript_expression "((int *)pppuVar15)[0xe]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "((int *)pppuVar15)[1] = 0;" (assignment_expression "((int *)pppuVar15)[1] = 0" (subscript_expression "((int *)pppuVar15)[1]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00085687;" (goto "goto") (statement_identifier "LAB_00085687") (; ";")) (} "}"))))) (if_statement "if (__ptr == (uint *)0x0) goto LAB_0008562b;" (if "if") (parenthesized_expression "(__ptr == (uint *)0x0)" (( "(") (binary_expression "__ptr == (uint *)0x0" (identifier "__ptr") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0008562b;" (goto "goto") (statement_identifier "LAB_0008562b") (; ";"))) (goto_statement "goto LAB_00085601;" (goto "goto") (statement_identifier "LAB_00085601") (; ";")) (labeled_statement "switchD_000856db_caseD_8571f:\n  piVar13 = (int *)pppuVar15;" (statement_identifier "switchD_000856db_caseD_8571f") (: ":") (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" (identifier "piVar13") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";"))) (do_statement "do {\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  } while (uVar12 != 0 || uVar5 != 0);" (do "do") (compound_statement "{\n    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);\n    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;\n    iVar9 = FUN_00084b26();\n    pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }\n    uVar5 = __ptr[0x1a];\n    if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }\nLAB_0008576e:\n    piVar13 = (int *)pppuVar15;\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c)" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)piVar13 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -0x10)" (( "(") (binary_expression "(int)piVar13 + -0x10" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)piVar13 + 0x3c)" (* "*") (cast_expression "(undefined4 *)((int)piVar13 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 0x3c)" (( "(") (binary_expression "(int)piVar13 + 0x3c" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x14) = 0x8573a" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -0x14)" (( "(") (binary_expression "(int)piVar13 + -0x14" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8573a")) (; ";")) (expression_statement "iVar9 = FUN_00084b26();" (assignment_expression "iVar9 = FUN_00084b26()" (identifier "iVar9") (= "=") (call_expression "FUN_00084b26()" (identifier "FUN_00084b26") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int)piVar13 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar13 + -4)" (( "(") (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (if_statement "if (iVar9 != 1) {\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }" (if "if") (parenthesized_expression "(iVar9 != 1)" (( "(") (binary_expression "iVar9 != 1" (identifier "iVar9") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;\n      FUN_00084c19();\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\nLAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;\n      goto LAB_00085807;\n    }" ({ "{") (expression_statement "*(undefined4 *)((int)piVar13 + -8) = 0x85af4;" (assignment_expression "*(undefined4 *)((int)piVar13 + -8) = 0x85af4" (pointer_expression "*(undefined4 *)((int)piVar13 + -8)" (* "*") (cast_expression "(undefined4 *)((int)piVar13 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -8)" (( "(") (binary_expression "(int)piVar13 + -8" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x85af4")) (; ";")) (expression_statement "FUN_00084c19();" (call_expression "FUN_00084c19()" (identifier "FUN_00084c19") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int)piVar13 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar13 + -4)" (( "(") (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (labeled_statement "LAB_00085af4:\n      if (iVar9 == 0) goto LAB_000858b9;" (statement_identifier "LAB_00085af4") (: ":") (if_statement "if (iVar9 == 0) goto LAB_000858b9;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000858b9;" (goto "goto") (statement_identifier "LAB_000858b9") (; ";")))) (goto_statement "goto LAB_00085807;" (goto "goto") (statement_identifier "LAB_00085807") (; ";")) (} "}"))) (expression_statement "uVar5 = __ptr[0x1a];" (assignment_expression "uVar5 = __ptr[0x1a]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x1a]" (identifier "__ptr") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (if_statement "if (uVar5 == 1) {\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }\n    else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" (if "if") (parenthesized_expression "(uVar5 == 1)" (( "(") (binary_expression "uVar5 == 1" (identifier "uVar5") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      puVar1 = __ptr + 0x1f;\n      uVar5 = *puVar1;\n      *puVar1 = *puVar1 + __ptr[2];\n      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n      __ptr[0x1a] = 2;\nLAB_00085768:\n      uVar5 = __ptr[0x1d];\n      uVar12 = __ptr[0x1e];\n      pppuVar15 = (undefined ***)((int)piVar13 + -4);\n    }" ({ "{") (expression_statement "puVar1 = __ptr + 0x1f;" (assignment_expression "puVar1 = __ptr + 0x1f" (identifier "puVar1") (= "=") (binary_expression "__ptr + 0x1f" (identifier "__ptr") (+ "+") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" (identifier "uVar5") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + __ptr[2];" (assignment_expression "*puVar1 = *puVar1 + __ptr[2]" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + __ptr[2]" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (subscript_expression "__ptr[2]" (identifier "__ptr") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "__ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);" (assignment_expression "__ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (subscript_expression "__ptr[0x20]" (identifier "__ptr") ([ "[") (number_literal "0x20") (] "]")) (= "=") (binary_expression "__ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (binary_expression "__ptr[0x20] + __ptr[3]" (subscript_expression "__ptr[0x20]" (identifier "__ptr") ([ "[") (number_literal "0x20") (] "]")) (+ "+") (subscript_expression "__ptr[3]" (identifier "__ptr") ([ "[") (number_literal "3") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar5,__ptr[2])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,__ptr[2])" (identifier "CARRY4") (argument_list "(uVar5,__ptr[2])" (( "(") (identifier "uVar5") (, ",") (subscript_expression "__ptr[2]" (identifier "__ptr") ([ "[") (number_literal "2") (] "]")) () ")")))))) (; ";")) (expression_statement "__ptr[0x1a] = 2;" (assignment_expression "__ptr[0x1a] = 2" (subscript_expression "__ptr[0x1a]" (identifier "__ptr") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "2")) (; ";")) (labeled_statement "LAB_00085768:\n      uVar5 = __ptr[0x1d];" (statement_identifier "LAB_00085768") (: ":") (expression_statement "uVar5 = __ptr[0x1d];" (assignment_expression "uVar5 = __ptr[0x1d]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x1d]" (identifier "__ptr") ([ "[") (number_literal "0x1d") (] "]"))) (; ";"))) (expression_statement "uVar12 = __ptr[0x1e];" (assignment_expression "uVar12 = __ptr[0x1e]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[0x1e]" (identifier "__ptr") ([ "[") (number_literal "0x1e") (] "]"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -4);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -4)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int)piVar13 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar13 + -4)" (( "(") (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" (else "else") (compound_statement "{\n      if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }\n      uVar5 = __ptr[2];\n      uVar12 = __ptr[3];\n      __ptr[0x1d] = uVar5;\n      __ptr[0x1e] = uVar12;\n      piVar13 = (int *)((int)piVar13 + -4);\n      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;\n      __ptr[0x1a] = 1;\n    }" ({ "{") (if_statement "if (uVar5 != 0) {\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (uVar5 != 2) goto LAB_00085768;\n        puVar1 = __ptr + 0x21;\n        uVar5 = *puVar1;\n        *puVar1 = *puVar1 + __ptr[2];\n        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);\n        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;\n        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;\n        uVar5 = FUN_000af9bf();\n        __ptr[0x23] = ~uVar5;\n        uVar5 = __ptr[0x1d] - 1;\n        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);\n        __ptr[0x1d] = uVar5;\n        __ptr[0x1e] = uVar12;\n        __ptr[0x1a] = 1;\n        pppuVar15 = (undefined ***)((int)piVar13 + -8);\n        goto LAB_0008576e;\n      }" ({ "{") (if_statement "if (uVar5 != 2) goto LAB_00085768;" (if "if") (parenthesized_expression "(uVar5 != 2)" (( "(") (binary_expression "uVar5 != 2" (identifier "uVar5") (!= "!=") (number_literal "2")) () ")")) (goto_statement "goto LAB_00085768;" (goto "goto") (statement_identifier "LAB_00085768") (; ";"))) (expression_statement "puVar1 = __ptr + 0x21;" (assignment_expression "puVar1 = __ptr + 0x21" (identifier "puVar1") (= "=") (binary_expression "__ptr + 0x21" (identifier "__ptr") (+ "+") (number_literal "0x21"))) (; ";")) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" (identifier "uVar5") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + __ptr[2];" (assignment_expression "*puVar1 = *puVar1 + __ptr[2]" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + __ptr[2]" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (subscript_expression "__ptr[2]" (identifier "__ptr") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "__ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);" (assignment_expression "__ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (subscript_expression "__ptr[0x22]" (identifier "__ptr") ([ "[") (number_literal "0x22") (] "]")) (= "=") (binary_expression "__ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2])" (binary_expression "__ptr[0x22] + __ptr[3]" (subscript_expression "__ptr[0x22]" (identifier "__ptr") ([ "[") (number_literal "0x22") (] "]")) (+ "+") (subscript_expression "__ptr[3]" (identifier "__ptr") ([ "[") (number_literal "3") (] "]"))) (+ "+") (cast_expression "(uint)CARRY4(uVar5,__ptr[2])" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,__ptr[2])" (identifier "CARRY4") (argument_list "(uVar5,__ptr[2])" (( "(") (identifier "uVar5") (, ",") (subscript_expression "__ptr[2]" (identifier "__ptr") ([ "[") (number_literal "2") (] "]")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)\n        ;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)piVar13 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -0x14)" (( "(") (binary_expression "(int)piVar13 + -0x14" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" (* "*") (cast_expression "(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)piVar13 + -4) + 0xcf8)" (( "(") (binary_expression "*(int *)((int)piVar13 + -4) + 0xcf8" (pointer_expression "*(int *)((int)piVar13 + -4)" (* "*") (cast_expression "(int *)((int)piVar13 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -4)" (( "(") (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-4")) () ")")))) (+ "+") (number_literal "0xcf8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;" (assignment_expression "*(undefined4 *)((int)piVar13 + -0x18) = 0x85a94" (pointer_expression "*(undefined4 *)((int)piVar13 + -0x18)" (* "*") (cast_expression "(undefined4 *)((int)piVar13 + -0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -0x18)" (( "(") (binary_expression "(int)piVar13 + -0x18" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (number_literal "0x85a94")) (; ";")) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" (identifier "uVar5") (= "=") (call_expression "FUN_000af9bf()" (identifier "FUN_000af9bf") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "__ptr[0x23] = ~uVar5;" (assignment_expression "__ptr[0x23] = ~uVar5" (subscript_expression "__ptr[0x23]" (identifier "__ptr") ([ "[") (number_literal "0x23") (] "]")) (= "=") (unary_expression "~uVar5" (~ "~") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = __ptr[0x1d] - 1;" (assignment_expression "uVar5 = __ptr[0x1d] - 1" (identifier "uVar5") (= "=") (binary_expression "__ptr[0x1d] - 1" (subscript_expression "__ptr[0x1d]" (identifier "__ptr") ([ "[") (number_literal "0x1d") (] "]")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);" (assignment_expression "uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0)" (identifier "uVar12") (= "=") (binary_expression "(__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0)" (parenthesized_expression "(__ptr[0x1e] - 1)" (( "(") (binary_expression "__ptr[0x1e] - 1" (subscript_expression "__ptr[0x1e]" (identifier "__ptr") ([ "[") (number_literal "0x1e") (] "]")) (- "-") (number_literal "1")) () ")")) (+ "+") (call_expression "(uint)(__ptr[0x1d] != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(__ptr[0x1d] != 0)" (( "(") (binary_expression "__ptr[0x1d] != 0" (subscript_expression "__ptr[0x1d]" (identifier "__ptr") ([ "[") (number_literal "0x1d") (] "]")) (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "__ptr[0x1d] = uVar5;" (assignment_expression "__ptr[0x1d] = uVar5" (subscript_expression "__ptr[0x1d]" (identifier "__ptr") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "__ptr[0x1e] = uVar12;" (assignment_expression "__ptr[0x1e] = uVar12" (subscript_expression "__ptr[0x1e]" (identifier "__ptr") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "__ptr[0x1a] = 1;" (assignment_expression "__ptr[0x1a] = 1" (subscript_expression "__ptr[0x1a]" (identifier "__ptr") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)((int)piVar13 + -8);" (assignment_expression "pppuVar15 = (undefined ***)((int)piVar13 + -8)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)((int)piVar13 + -8)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "((int)piVar13 + -8)" (( "(") (binary_expression "(int)piVar13 + -8" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-8")) () ")")))) (; ";")) (goto_statement "goto LAB_0008576e;" (goto "goto") (statement_identifier "LAB_0008576e") (; ";")) (} "}"))) (expression_statement "uVar5 = __ptr[2];" (assignment_expression "uVar5 = __ptr[2]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[2]" (identifier "__ptr") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar12 = __ptr[3];" (assignment_expression "uVar12 = __ptr[3]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[3]" (identifier "__ptr") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "__ptr[0x1d] = uVar5;" (assignment_expression "__ptr[0x1d] = uVar5" (subscript_expression "__ptr[0x1d]" (identifier "__ptr") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "__ptr[0x1e] = uVar12;" (assignment_expression "__ptr[0x1e] = uVar12" (subscript_expression "__ptr[0x1e]" (identifier "__ptr") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "piVar13 = (int *)((int)piVar13 + -4);" (assignment_expression "piVar13 = (int *)((int)piVar13 + -4)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)piVar13 + -4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -4)" (( "(") (binary_expression "(int)piVar13 + -4" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-4")) () ")")))) (; ";")) (if_statement "if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;" (if "if") (parenthesized_expression "(__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5)" (( "(") (binary_expression "__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5" (binary_expression "__ptr[0x14] != uVar12" (subscript_expression "__ptr[0x14]" (identifier "__ptr") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (identifier "uVar12")) (|| "||") (binary_expression "__ptr[0x13] != uVar5" (subscript_expression "__ptr[0x13]" (identifier "__ptr") ([ "[") (number_literal "0x13") (] "]")) (!= "!=") (identifier "uVar5"))) () ")")) (goto_statement "goto LAB_00085802;" (goto "goto") (statement_identifier "LAB_00085802") (; ";"))) (expression_statement "__ptr[0x1a] = 1;" (assignment_expression "__ptr[0x1a] = 1" (subscript_expression "__ptr[0x1a]" (identifier "__ptr") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0008576e:\n    piVar13 = (int *)pppuVar15;" (statement_identifier "LAB_0008576e") (: ":") (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" (identifier "piVar13") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(uVar12 != 0 || uVar5 != 0)" (( "(") (binary_expression "uVar12 != 0 || uVar5 != 0" (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0"))) () ")")) (; ";")) (expression_statement "*__ptr = 7;" (assignment_expression "*__ptr = 7" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "7")) (; ";")) (labeled_statement "switchD_000856db_caseD_8577d:\n  uVar5 = __ptr[0x1b];" (statement_identifier "switchD_000856db_caseD_8577d") (: ":") (expression_statement "uVar5 = __ptr[0x1b];" (assignment_expression "uVar5 = __ptr[0x1b]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x1b]" (identifier "__ptr") ([ "[") (number_literal "0x1b") (] "]"))) (; ";"))) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1" (identifier "iVar9") (= "=") (binary_expression "*(int *)((int)pppuVar15 + 0x38) + 1" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = __ptr[4];" (assignment_expression "uVar12 = __ptr[4]" (identifier "uVar12") (= "=") (subscript_expression "__ptr[4]" (identifier "__ptr") ([ "[") (number_literal "4") (] "]"))) (; ";")) (labeled_statement "LAB_00085795:\n  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" (statement_identifier "LAB_00085795") (: ":") (if_statement "if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }\n  else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" (if "if") (parenthesized_expression "((~uVar12 + iVar9 + uVar5 & 3) == 0)" (( "(") (binary_expression "(~uVar12 + iVar9 + uVar5 & 3) == 0" (parenthesized_expression "(~uVar12 + iVar9 + uVar5 & 3)" (( "(") (binary_expression "~uVar12 + iVar9 + uVar5 & 3" (binary_expression "~uVar12 + iVar9 + uVar5" (binary_expression "~uVar12 + iVar9" (unary_expression "~uVar12" (~ "~") (identifier "uVar12")) (+ "+") (identifier "iVar9")) (+ "+") (identifier "uVar5")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;\n    uVar6 = FUN_00084c19();\n    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;\n    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;\n    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;\n    iVar9 = FUN_00016390();\n    piVar16 = (int *)pppuVar15;\n    if (iVar9 != 0) goto LAB_000858fc;\n    *__ptr = 8;\nswitchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);\n    iVar9 = *(int *)((int)pppuVar15 + 0x34);\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n    if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }\n  }" ({ "{") (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x857ae" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -4)" (( "(") (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x857ae")) (; ";")) (expression_statement "uVar6 = FUN_00084c19();" (assignment_expression "uVar6 = FUN_00084c19()" (identifier "uVar6") (= "=") (call_expression "FUN_00084c19()" (identifier "FUN_00084c19") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = uVar6;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = uVar6" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -4)" (( "(") (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -8) = 0x14;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -8) = 0x14" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -8)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -8)" (( "(") (binary_expression "(int)pppuVar15 + -8" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0x14")) (; ";")) (expression_statement "*(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;" (assignment_expression "*(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f" (pointer_expression "*(uint **)((int)pppuVar15 + -0xc)" (* "*") (cast_expression "(uint **)((int)pppuVar15 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0xc)" (( "(") (binary_expression "(int)pppuVar15 + -0xc" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (binary_expression "__ptr + 0x1f" (identifier "__ptr") (+ "+") (number_literal "0x1f"))) (; ";")) (expression_statement "*(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;" (assignment_expression "*(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15" (pointer_expression "*(uint **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(uint **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (binary_expression "__ptr + 0x15" (identifier "__ptr") (+ "+") (number_literal "0x15"))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x857c2")) (; ";")) (expression_statement "iVar9 = FUN_00016390();" (assignment_expression "iVar9 = FUN_00016390()" (identifier "iVar9") (= "=") (call_expression "FUN_00016390()" (identifier "FUN_00016390") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" (identifier "piVar16") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_000858fc;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000858fc;" (goto "goto") (statement_identifier "LAB_000858fc") (; ";"))) (expression_statement "*__ptr = 8;" (assignment_expression "*__ptr = 8" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "8")) (; ";")) (labeled_statement "switchD_000856db_caseD_857d4:\n    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);" (statement_identifier "switchD_000856db_caseD_857d4") (: ":") (expression_statement "uVar12 = *(uint *)((int)pppuVar15 + 0x3c);" (assignment_expression "uVar12 = *(uint *)((int)pppuVar15 + 0x3c)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x3c)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x3c)" (( "(") (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x3c")) () ")"))))) (; ";"))) (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x34);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x34)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x34)" (( "(") (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (if_statement "if (uVar12 != uVar5) {\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }" (if "if") (parenthesized_expression "(uVar12 != uVar5)" (( "(") (binary_expression "uVar12 != uVar5" (identifier "uVar12") (!= "!=") (identifier "uVar5")) () ")")) (compound_statement "{\n      uVar8 = __ptr[6];\n      uVar10 = __ptr[1];\n      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;\n      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;\n      piVar13 = (int *)pppuVar15;\n      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }\n      uVar10 = uVar10 + 8;\n      __ptr[1] = uVar10;\n      if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }\n      __ptr[6] = 0;\n      __ptr[1] = 0;\n      __ptr[0x25] = 0xc;\n      *__ptr = 9;\nswitchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;\n      cVar3 = FUN_0008543e();\n      pppuVar15 = (undefined ***)piVar13;\n      if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }\n      piVar16 = piVar13;\n      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }\nLAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;\n      *(undefined1 *)(__ptr + 9) = 0;\n      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;\n      iVar9 = 7;\n      goto LAB_00085999;\n    }" ({ "{") (expression_statement "uVar8 = __ptr[6];" (assignment_expression "uVar8 = __ptr[6]" (identifier "uVar8") (= "=") (subscript_expression "__ptr[6]" (identifier "__ptr") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "uVar10 = __ptr[1];" (assignment_expression "uVar10 = __ptr[1]" (identifier "uVar10") (= "=") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1" (pointer_expression "*(uint *)((int)pppuVar15 + 0x24)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x24)" (( "(") (binary_expression "(int)pppuVar15 + 0x24" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1" (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar13 = (int *)pppuVar15;" (assignment_expression "piVar13 = (int *)pppuVar15" (identifier "piVar13") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }" (if "if") (parenthesized_expression "(*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f)))" (( "(") (binary_expression "*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))" (pointer_expression "*(char *)(iVar9 + uVar5)" (* "*") (cast_expression "(char *)(iVar9 + uVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + uVar5)" (( "(") (binary_expression "iVar9 + uVar5" (identifier "iVar9") (+ "+") (identifier "uVar5")) () ")")))) (!= "!=") (cast_expression "(char)(uVar8 >> ((byte)uVar10 & 0x1f))" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar8 >> ((byte)uVar10 & 0x1f))" (( "(") (binary_expression "uVar8 >> ((byte)uVar10 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "((byte)uVar10 & 0x1f)" (( "(") (binary_expression "(byte)uVar10 & 0x1f" (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) () ")")) (compound_statement "{\nLAB_00085802:\n        iVar9 = 7;\n        pppuVar15 = (undefined ***)piVar13;\nLAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;\n        iVar7 = *(int *)((int)pppuVar15 + 0x44);\n        goto joined_r0x00085811;\n      }" ({ "{") (labeled_statement "LAB_00085802:\n        iVar9 = 7;" (statement_identifier "LAB_00085802") (: ":") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";"))) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar13" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar13"))) (; ";")) (labeled_statement "LAB_00085807:\n        *(undefined1 *)(__ptr + 9) = 0;" (statement_identifier "LAB_00085807") (: ":") (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x44)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x00085811;" (goto "goto") (statement_identifier "joined_r0x00085811") (; ";")) (} "}"))) (expression_statement "uVar10 = uVar10 + 8;" (assignment_expression "uVar10 = uVar10 + 8" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 8" (identifier "uVar10") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "__ptr[1] = uVar10;" (assignment_expression "__ptr[1] = uVar10" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (if_statement "if (uVar10 < 0x20) {\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }" (if "if") (parenthesized_expression "(uVar10 < 0x20)" (( "(") (binary_expression "uVar10 < 0x20" (identifier "uVar10") (< "<") (number_literal "0x20")) () ")")) (compound_statement "{\n        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;\n        iVar7 = *(int *)((int)pppuVar15 + 0x24);\n        do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);\n      }" ({ "{") (expression_statement "*(uint *)((int)pppuVar15 + 0x1c) = uVar12;" (assignment_expression "*(uint *)((int)pppuVar15 + 0x1c) = uVar12" (pointer_expression "*(uint *)((int)pppuVar15 + 0x1c)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x1c)" (( "(") (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar7 = *(int *)((int)pppuVar15 + 0x24);" (assignment_expression "iVar7 = *(int *)((int)pppuVar15 + 0x24)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)pppuVar15 + 0x24)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x24)" (( "(") (binary_expression "(int)pppuVar15 + 0x24" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (do_statement "do {\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        } while (uVar5 < 0x20);" (do "do") (compound_statement "{\n          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }\n          uVar5 = __ptr[1];\n          iVar7 = iVar7 + 1;\n          *(int *)((int)pppuVar15 + 0x38) = iVar7;\n          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;\n          uVar5 = uVar5 + 8;\n          __ptr[1] = uVar5;\n        }" ({ "{") (if_statement "if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }" (if "if") (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x1c) == iVar7)" (( "(") (binary_expression "*(int *)((int)pppuVar15 + 0x1c) == iVar7" (pointer_expression "*(int *)((int)pppuVar15 + 0x1c)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x1c)" (( "(") (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (identifier "iVar7")) () ")")) (compound_statement "{\n            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);\n            goto LAB_000858bd;\n          }" ({ "{") (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x1c);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x1c)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x1c)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x1c)" (( "(") (binary_expression "(int)pppuVar15 + 0x1c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";")) (} "}"))) (expression_statement "uVar5 = __ptr[1];" (assignment_expression "uVar5 = __ptr[1]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(int *)((int)pppuVar15 + 0x38) = iVar7;" (assignment_expression "*(int *)((int)pppuVar15 + 0x38) = iVar7" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))\n          goto LAB_00085802;" (if "if") (parenthesized_expression "(*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))" (( "(") (binary_expression "*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f))" (pointer_expression "*(char *)(iVar9 + -1 + iVar7)" (* "*") (cast_expression "(char *)(iVar9 + -1 + iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + -1 + iVar7)" (( "(") (binary_expression "iVar9 + -1 + iVar7" (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1")) (+ "+") (identifier "iVar7")) () ")")))) (!= "!=") (cast_expression "(char)(uVar8 >> ((byte)uVar5 & 0x1f))" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar8 >> ((byte)uVar5 & 0x1f))" (( "(") (binary_expression "uVar8 >> ((byte)uVar5 & 0x1f)" (identifier "uVar8") (>> ">>") (parenthesized_expression "((byte)uVar5 & 0x1f)" (( "(") (binary_expression "(byte)uVar5 & 0x1f" (cast_expression "(byte)uVar5" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar5")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) () ")")) (goto_statement "goto LAB_00085802;" (goto "goto") (statement_identifier "LAB_00085802") (; ";"))) (expression_statement "uVar5 = uVar5 + 8;" (assignment_expression "uVar5 = uVar5 + 8" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 8" (identifier "uVar5") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "__ptr[1] = uVar5;" (assignment_expression "__ptr[1] = uVar5" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 < 0x20)" (( "(") (binary_expression "uVar5 < 0x20" (identifier "uVar5") (< "<") (number_literal "0x20")) () ")")) (; ";")) (} "}"))) (expression_statement "__ptr[6] = 0;" (assignment_expression "__ptr[6] = 0" (subscript_expression "__ptr[6]" (identifier "__ptr") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[1] = 0;" (assignment_expression "__ptr[1] = 0" (subscript_expression "__ptr[1]" (identifier "__ptr") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "__ptr[0x25] = 0xc;" (assignment_expression "__ptr[0x25] = 0xc" (subscript_expression "__ptr[0x25]" (identifier "__ptr") ([ "[") (number_literal "0x25") (] "]")) (= "=") (number_literal "0xc")) (; ";")) (expression_statement "*__ptr = 9;" (assignment_expression "*__ptr = 9" (pointer_expression "*__ptr" (* "*") (identifier "__ptr")) (= "=") (number_literal "9")) (; ";")) (labeled_statement "switchD_000856db_caseD_858aa:\n      piVar13[-1] = 0x858b5;" (statement_identifier "switchD_000856db_caseD_858aa") (: ":") (expression_statement "piVar13[-1] = 0x858b5;" (assignment_expression "piVar13[-1] = 0x858b5" (subscript_expression "piVar13[-1]" (identifier "piVar13") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0x858b5")) (; ";"))) (expression_statement "cVar3 = FUN_0008543e();" (assignment_expression "cVar3 = FUN_0008543e()" (identifier "cVar3") (= "=") (call_expression "FUN_0008543e()" (identifier "FUN_0008543e") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)piVar13;" (assignment_expression "pppuVar15 = (undefined ***)piVar13" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar13" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar13"))) (; ";")) (if_statement "if (cVar3 == '\0') {\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n        goto LAB_000858bd;\n      }" ({ "{") (labeled_statement "LAB_000858b9:\n        uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (statement_identifier "LAB_000858b9") (: ":") (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";"))) (goto_statement "goto LAB_000858bd;" (goto "goto") (statement_identifier "LAB_000858bd") (; ";")) (} "}"))) (expression_statement "piVar16 = piVar13;" (assignment_expression "piVar16 = piVar13" (identifier "piVar16") (= "=") (identifier "piVar13")) (; ";")) (if_statement "if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }" (if "if") (parenthesized_expression "(*(short *)((int)__ptr + 0xa2) == 0x5a59)" (( "(") (binary_expression "*(short *)((int)__ptr + 0xa2) == 0x5a59" (pointer_expression "*(short *)((int)__ptr + 0xa2)" (* "*") (cast_expression "(short *)((int)__ptr + 0xa2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + 0xa2)" (( "(") (binary_expression "(int)__ptr + 0xa2" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (number_literal "0xa2")) () ")")))) (== "==") (number_literal "0x5a59")) () ")")) (compound_statement "{\n        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);\n        piVar13[-5] = 0x85938;\n        uVar5 = FUN_000af9bf();\n        piVar14 = piVar13 + -1;\n        pppuVar15 = (undefined ***)(piVar13 + -1);\n        piVar16 = piVar13 + -1;\n        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;\n        iVar9 = piVar13[0x10];\n        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }\n        *(undefined1 *)(__ptr + 9) = 0;\n        if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }\n        goto LAB_000859c3;\n      }" ({ "{") (expression_statement "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);" (assignment_expression "piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8)" (subscript_expression "piVar13[-4]" (identifier "piVar13") ([ "[") (number_literal "-4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(*piVar13 + 0xcf8)" (* "*") (cast_expression "(undefined4 *)(*piVar13 + 0xcf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar13 + 0xcf8)" (( "(") (binary_expression "*piVar13 + 0xcf8" (pointer_expression "*piVar13" (* "*") (identifier "piVar13")) (+ "+") (number_literal "0xcf8")) () ")"))))) (; ";")) (expression_statement "piVar13[-5] = 0x85938;" (assignment_expression "piVar13[-5] = 0x85938" (subscript_expression "piVar13[-5]" (identifier "piVar13") ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x85938")) (; ";")) (expression_statement "uVar5 = FUN_000af9bf();" (assignment_expression "uVar5 = FUN_000af9bf()" (identifier "uVar5") (= "=") (call_expression "FUN_000af9bf()" (identifier "FUN_000af9bf") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar14 = piVar13 + -1;" (assignment_expression "piVar14 = piVar13 + -1" (identifier "piVar14") (= "=") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)(piVar13 + -1)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(piVar13 + -1)" (( "(") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "piVar16 = piVar13 + -1;" (assignment_expression "piVar16 = piVar13 + -1" (identifier "piVar16") (= "=") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;" (if "if") (parenthesized_expression "(~uVar5 != __ptr[0x26])" (( "(") (binary_expression "~uVar5 != __ptr[0x26]" (unary_expression "~uVar5" (~ "~") (identifier "uVar5")) (!= "!=") (subscript_expression "__ptr[0x26]" (identifier "__ptr") ([ "[") (number_literal "0x26") (] "]"))) () ")")) (goto_statement "goto LAB_000858fc;" (goto "goto") (statement_identifier "LAB_000858fc") (; ";"))) (expression_statement "iVar9 = piVar13[0x10];" (assignment_expression "iVar9 = piVar13[0x10]" (identifier "iVar9") (= "=") (subscript_expression "piVar13[0x10]" (identifier "piVar13") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (if_statement "if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }" (if "if") (parenthesized_expression "(((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7]))" (( "(") (binary_expression "((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])" (parenthesized_expression "((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0'))" (( "(") (binary_expression "(__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||\n            ((char)__ptr[0x28] != '\0')" (parenthesized_expression "(__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e))" (( "(") (binary_expression "__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" (binary_expression "__ptr[0x1c] >> 2 != 0" (binary_expression "__ptr[0x1c] >> 2" (subscript_expression "__ptr[0x1c]" (identifier "__ptr") ([ "[") (number_literal "0x1c") (] "]")) (>> ">>") (number_literal "2")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "__ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" (subscript_expression "__ptr[0x27]" (identifier "__ptr") ([ "[") (number_literal "0x27") (] "]")) (!= "!=") (parenthesized_expression "(__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)" (( "(") (binary_expression "__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e" (binary_expression "__ptr[0x1b] >> 2" (subscript_expression "__ptr[0x1b]" (identifier "__ptr") ([ "[") (number_literal "0x1b") (] "]")) (>> ">>") (number_literal "2")) (| "|") (binary_expression "__ptr[0x1c] << 0x1e" (subscript_expression "__ptr[0x1c]" (identifier "__ptr") ([ "[") (number_literal "0x1c") (] "]")) (<< "<<") (number_literal "0x1e"))) () ")")))) () ")")) (|| "||") (parenthesized_expression "((char)__ptr[0x28] != '\0')" (( "(") (binary_expression "(char)__ptr[0x28] != '\0'" (cast_expression "(char)__ptr[0x28]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "__ptr[0x28]" (identifier "__ptr") ([ "[") (number_literal "0x28") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])" (( "(") (binary_expression "(uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7]" (binary_expression "(uint)*(byte *)((int)__ptr + 0xa1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)((int)__ptr + 0xa1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)__ptr + 0xa1)" (( "(") (binary_expression "(int)__ptr + 0xa1" (cast_expression "(int)__ptr" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "__ptr")) (+ "+") (number_literal "0xa1")) () ")")))) (!= "!=") (subscript_expression "__ptr[7]" (identifier "__ptr") ([ "[") (number_literal "7") (] "]"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined1 *)(__ptr + 9) = 0;\n          if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }\n          goto LAB_00085820;\n        }" ({ "{") (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar9 != 0) {\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar9 = 7;\n            pppuVar15 = (undefined ***)(piVar13 + -1);\n            goto LAB_00085999;\n          }" ({ "{") (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)(piVar13 + -1)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(piVar13 + -1)" (( "(") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (goto_statement "goto LAB_00085999;" (goto "goto") (statement_identifier "LAB_00085999") (; ";")) (} "}"))) (goto_statement "goto LAB_00085820;" (goto "goto") (statement_identifier "LAB_00085820") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar9 != 0) {\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar9 = 1;\n          pppuVar15 = (undefined ***)(piVar13 + -1);\n          goto LAB_00085999;\n        }" ({ "{") (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)(piVar13 + -1);" (assignment_expression "pppuVar15 = (undefined ***)(piVar13 + -1)" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)(piVar13 + -1)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(piVar13 + -1)" (( "(") (binary_expression "piVar13 + -1" (identifier "piVar13") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (goto_statement "goto LAB_00085999;" (goto "goto") (statement_identifier "LAB_00085999") (; ";")) (} "}"))) (goto_statement "goto LAB_000859c3;" (goto "goto") (statement_identifier "LAB_000859c3") (; ";")) (} "}"))) (labeled_statement "LAB_000858fc:\n      pppuVar15 = (undefined ***)piVar16;" (statement_identifier "LAB_000858fc") (: ":") (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar16" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar16"))) (; ";"))) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;" (if "if") (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x44) == 0)" (( "(") (binary_expression "*(int *)((int)pppuVar15 + 0x44) == 0" (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00085820;" (goto "goto") (statement_identifier "LAB_00085820") (; ";"))) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_00085999;" (goto "goto") (statement_identifier "LAB_00085999") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" (else "else") (compound_statement "{\n    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;\n    FUN_00084c19();\n    uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n  }" ({ "{") (if_statement "if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;" (if "if") (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9)" (( "(") (binary_expression "*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9" (binary_expression "*(int *)((int)pppuVar15 + 0x3c) + 1" (pointer_expression "*(int *)((int)pppuVar15 + 0x3c)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x3c)" (( "(") (binary_expression "(int)pppuVar15 + 0x3c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x3c")) () ")")))) (+ "+") (number_literal "1")) (!= "!=") (identifier "iVar9")) () ")")) (goto_statement "goto LAB_00085a24;" (goto "goto") (statement_identifier "LAB_00085a24") (; ";"))) (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -4)" (( "(") (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x85a1b")) (; ";")) (expression_statement "FUN_00084c19();" (call_expression "FUN_00084c19()" (identifier "FUN_00084c19") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (} "}"))))) (labeled_statement "LAB_000858bd:\n  iVar9 = *(int *)((int)pppuVar15 + 0x44);" (statement_identifier "LAB_000858bd") (: ":") (expression_statement "iVar9 = *(int *)((int)pppuVar15 + 0x44);" (assignment_expression "iVar9 = *(int *)((int)pppuVar15 + 0x44)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")"))))) (; ";"))) (if_statement "if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }" (if "if") (parenthesized_expression "((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9))" (( "(") (binary_expression "(uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)" (parenthesized_expression "(uVar5 == *(uint *)((int)pppuVar15 + 4))" (( "(") (binary_expression "uVar5 == *(uint *)((int)pppuVar15 + 4)" (identifier "uVar5") (== "==") (pointer_expression "*(uint *)((int)pppuVar15 + 4)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 4)" (( "(") (binary_expression "(int)pppuVar15 + 4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x20) == iVar9)" (( "(") (binary_expression "*(int *)((int)pppuVar15 + 0x20) == iVar9" (pointer_expression "*(int *)((int)pppuVar15 + 0x20)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x20)" (( "(") (binary_expression "(int)pppuVar15 + 0x20" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x20")) () ")")))) (== "==") (identifier "iVar9")) () ")"))) () ")")) (compound_statement "{\n    if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }\n    if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }\n    goto LAB_00085820;\n  }" ({ "{") (if_statement "if ((char)__ptr[9] == '\0') {\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }" (if "if") (parenthesized_expression "((char)__ptr[9] == '\0')" (( "(") (binary_expression "(char)__ptr[9] == '\0'" (cast_expression "(char)__ptr[9]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "__ptr[9]" (identifier "__ptr") ([ "[") (number_literal "9") (] "]"))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      *(undefined1 *)(__ptr + 9) = 1;\n      if (iVar9 == 0) goto LAB_000859cc;\n      iVar9 = 0;\n      goto LAB_00085999;\n    }" ({ "{") (expression_statement "*(undefined1 *)(__ptr + 9) = 1;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 1" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar9 == 0) goto LAB_000859cc;" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000859cc;" (goto "goto") (statement_identifier "LAB_000859cc") (; ";"))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00085999;" (goto "goto") (statement_identifier "LAB_00085999") (; ";")) (} "}"))) (if_statement "if (iVar9 != 0) {\n      iVar9 = 8;\n      goto LAB_00085999;\n    }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar9 = 8;\n      goto LAB_00085999;\n    }" ({ "{") (expression_statement "iVar9 = 8;" (assignment_expression "iVar9 = 8" (identifier "iVar9") (= "=") (number_literal "8")) (; ";")) (goto_statement "goto LAB_00085999;" (goto "goto") (statement_identifier "LAB_00085999") (; ";")) (} "}"))) (goto_statement "goto LAB_00085820;" (goto "goto") (statement_identifier "LAB_00085820") (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar9 != 0) {\n    iVar9 = 0;\n    goto LAB_00085999;\n  }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar9 = 0;\n    goto LAB_00085999;\n  }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00085999;" (goto "goto") (statement_identifier "LAB_00085999") (; ";")) (} "}"))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000859cc;" (goto "goto") (statement_identifier "LAB_000859cc") (; ";")) (labeled_statement "LAB_00085a24:\n  *(int *)((int)pppuVar15 + 0x38) = iVar9;" (statement_identifier "LAB_00085a24") (: ":") (expression_statement "*(int *)((int)pppuVar15 + 0x38) = iVar9;" (assignment_expression "*(int *)((int)pppuVar15 + 0x38) = iVar9" (pointer_expression "*(int *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")")))) (= "=") (identifier "iVar9")) (; ";"))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar16 = (int *)pppuVar15;" (assignment_expression "piVar16 = (int *)pppuVar15" (identifier "piVar16") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;" (if "if") (parenthesized_expression "(*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0')" (( "(") (binary_expression "*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0'" (pointer_expression "*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" (* "*") (cast_expression "(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9)" (( "(") (binary_expression "*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9" (binary_expression "*(int *)((int)pppuVar15 + 0x34) + -2" (pointer_expression "*(int *)((int)pppuVar15 + 0x34)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x34)" (( "(") (binary_expression "(int)pppuVar15 + 0x34" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (number_literal "-2")) (+ "+") (identifier "iVar9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00085a34;" (goto "goto") (statement_identifier "LAB_00085a34") (; ";"))) (goto_statement "goto LAB_00085795;" (goto "goto") (statement_identifier "LAB_00085795") (; ";")) (labeled_statement "LAB_00085a34:\n  iVar7 = *(int *)((int)piVar16 + 0x44);" (statement_identifier "LAB_00085a34") (: ":") (expression_statement "iVar7 = *(int *)((int)piVar16 + 0x44);" (assignment_expression "iVar7 = *(int *)((int)piVar16 + 0x44)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)piVar16 + 0x44)" (* "*") (cast_expression "(int *)((int)piVar16 + 0x44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + 0x44)" (( "(") (binary_expression "(int)piVar16 + 0x44" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (number_literal "0x44")) () ")"))))) (; ";"))) (expression_statement "iVar9 = 7;" (assignment_expression "iVar9 = 7" (identifier "iVar9") (= "=") (number_literal "7")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)piVar16;" (assignment_expression "pppuVar15 = (undefined ***)piVar16" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar16" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar16"))) (; ";")) (labeled_statement "LAB_00085a3d:\n  *(undefined1 *)(__ptr + 9) = 0;" (statement_identifier "LAB_00085a3d") (: ":") (expression_statement "*(undefined1 *)(__ptr + 9) = 0;" (assignment_expression "*(undefined1 *)(__ptr + 9) = 0" (pointer_expression "*(undefined1 *)(__ptr + 9)" (* "*") (cast_expression "(undefined1 *)(__ptr + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(__ptr + 9)" (( "(") (binary_expression "__ptr + 9" (identifier "__ptr") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (labeled_statement "joined_r0x00085811:\n  if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" (statement_identifier "joined_r0x00085811") (: ":") (if_statement "if (iVar7 != 0) {\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;\n    FUN_000886f2();\n    puVar1 = (uint *)((int)pppuVar15 + 0x10);\n    uVar5 = *puVar1;\n    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);\n    *(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));\n    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;\n    piVar14 = (int *)pppuVar15;\n    if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }\n    if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }\n  }" ({ "{") (labeled_statement "LAB_00085999:\n    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;" (statement_identifier "LAB_00085999") (: ":") (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x859a8" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -4)" (( "(") (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x859a8")) (; ";"))) (expression_statement "FUN_000886f2();" (call_expression "FUN_000886f2()" (identifier "FUN_000886f2") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar1 = (uint *)((int)pppuVar15 + 0x10);" (assignment_expression "puVar1 = (uint *)((int)pppuVar15 + 0x10)" (identifier "puVar1") (= "=") (cast_expression "(uint *)((int)pppuVar15 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x10)" (( "(") (binary_expression "(int)pppuVar15 + 0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar5 = *puVar1;" (assignment_expression "uVar5 = *puVar1" (identifier "uVar5") (= "=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (; ";")) (expression_statement "*puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);" (assignment_expression "*puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 + *(uint *)((int)pppuVar15 + 0x44)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (+ "+") (pointer_expression "*(uint *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")")))))) (; ";")) (expression_statement "*(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));" (assignment_expression "*(int *)((int)pppuVar15 + 0x14) =\n         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (pointer_expression "*(int *)((int)pppuVar15 + 0x14)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x14)" (( "(") (binary_expression "(int)pppuVar15 + 0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (pointer_expression "*(int *)((int)pppuVar15 + 0x14)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x14)" (( "(") (binary_expression "(int)pppuVar15 + 0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (cast_expression "(uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (identifier "CARRY4") (argument_list "(uVar5,*(uint *)((int)pppuVar15 + 0x44))" (( "(") (identifier "uVar5") (, ",") (pointer_expression "*(uint *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")")))) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + 0x44) = 0;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + 0x44) = 0" (pointer_expression "*(undefined4 *)((int)pppuVar15 + 0x44)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x44)" (( "(") (binary_expression "(int)pppuVar15 + 0x44" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x44")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar14 = (int *)pppuVar15;" (assignment_expression "piVar14 = (int *)pppuVar15" (identifier "piVar14") (= "=") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15"))) (; ";")) (if_statement "if (iVar9 == 1) {\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }" (if "if") (parenthesized_expression "(iVar9 == 1)" (( "(") (binary_expression "iVar9 == 1" (identifier "iVar9") (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);\n      iVar9 = 1;\n      pppuVar15 = (undefined ***)piVar14;\n      goto LAB_000859cc;\n    }" ({ "{") (labeled_statement "LAB_000859c3:\n      uVar5 = *(uint *)((int)piVar14 + 0x38);" (statement_identifier "LAB_000859c3") (: ":") (expression_statement "uVar5 = *(uint *)((int)piVar14 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)piVar14 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)piVar14 + 0x38)" (* "*") (cast_expression "(uint *)((int)piVar14 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar14 + 0x38)" (( "(") (binary_expression "(int)piVar14 + 0x38" (cast_expression "(int)piVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar14")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";"))) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" (identifier "iVar9") (= "=") (number_literal "1")) (; ";")) (expression_statement "pppuVar15 = (undefined ***)piVar14;" (assignment_expression "pppuVar15 = (undefined ***)piVar14" (identifier "pppuVar15") (= "=") (cast_expression "(undefined ***)piVar14" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "piVar14"))) (; ";")) (goto_statement "goto LAB_000859cc;" (goto "goto") (statement_identifier "LAB_000859cc") (; ";")) (} "}"))) (if_statement "if (iVar9 == 0) {\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = *(uint *)((int)pppuVar15 + 0x38);\n      iVar9 = 0;\n      goto LAB_000859cc;\n    }" ({ "{") (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_000859cc;" (goto "goto") (statement_identifier "LAB_000859cc") (; ";")) (} "}"))) (} "}")))) (if_statement "if (iVar9 != 2) {\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }" (if "if") (parenthesized_expression "(iVar9 != 2)" (( "(") (binary_expression "iVar9 != 2" (identifier "iVar9") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\nLAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;\n    ((int *)pppuVar15)[-5] = 0x85833;\n    FUN_0001930a();\n    ((int *)pppuVar15)[4] = -1;\n    ((int *)pppuVar15)[5] = -1;\nLAB_00085601:\n    uVar5 = __ptr[0x126];\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint *)((int)pppuVar15 + -0x10) = uVar5;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    *(uint **)((int)pppuVar15 + -0x10) = __ptr;\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;\n    free(*(void **)((int)pppuVar15 + -0x10));\nLAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);\n    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;\n    free(*(void **)((int)pppuVar15 + -0x10));\n    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }\n    return *(undefined8 *)((int)pppuVar15 + 0x10);\n  }" ({ "{") (labeled_statement "LAB_00085820:\n    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;" (statement_identifier "LAB_00085820") (: ":") (expression_statement "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;" (assignment_expression "((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1" (subscript_expression "((int *)pppuVar15)[-4]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-4") (] "]")) (= "=") (binary_expression "(int)*pppuVar15 + -0x61e1" (cast_expression "(int)*pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*pppuVar15" (* "*") (identifier "pppuVar15"))) (+ "+") (number_literal "-0x61e1"))) (; ";"))) (expression_statement "((int *)pppuVar15)[-5] = 0x85833;" (assignment_expression "((int *)pppuVar15)[-5] = 0x85833" (subscript_expression "((int *)pppuVar15)[-5]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "-5") (] "]")) (= "=") (number_literal "0x85833")) (; ";")) (expression_statement "FUN_0001930a();" (call_expression "FUN_0001930a()" (identifier "FUN_0001930a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "((int *)pppuVar15)[4] = -1;" (assignment_expression "((int *)pppuVar15)[4] = -1" (subscript_expression "((int *)pppuVar15)[4]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "((int *)pppuVar15)[5] = -1;" (assignment_expression "((int *)pppuVar15)[5] = -1" (subscript_expression "((int *)pppuVar15)[5]" (parenthesized_expression "((int *)pppuVar15)" (( "(") (cast_expression "(int *)pppuVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pppuVar15")) () ")")) ([ "[") (number_literal "5") (] "]")) (= "=") (number_literal "-1")) (; ";")) (labeled_statement "LAB_00085601:\n    uVar5 = __ptr[0x126];" (statement_identifier "LAB_00085601") (: ":") (expression_statement "uVar5 = __ptr[0x126];" (assignment_expression "uVar5 = __ptr[0x126]" (identifier "uVar5") (= "=") (subscript_expression "__ptr[0x126]" (identifier "__ptr") ([ "[") (number_literal "0x126") (] "]"))) (; ";"))) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(uVar5 + 0x18)" (* "*") (cast_expression "(undefined4 *)(uVar5 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 + 0x18)" (( "(") (binary_expression "uVar5 + 0x18" (identifier "uVar5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x85618")) (; ";")) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" (identifier "free") (argument_list "(*(void **)((int)pppuVar15 + -0x10))" (( "(") (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(void **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "*(uint *)((int)pppuVar15 + -0x10) = uVar5;" (assignment_expression "*(uint *)((int)pppuVar15 + -0x10) = uVar5" (pointer_expression "*(uint *)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x85620")) (; ";")) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" (identifier "free") (argument_list "(*(void **)((int)pppuVar15 + -0x10))" (( "(") (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(void **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (expression_statement "*(uint **)((int)pppuVar15 + -0x10) = __ptr;" (assignment_expression "*(uint **)((int)pppuVar15 + -0x10) = __ptr" (pointer_expression "*(uint **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(uint **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "__ptr")) (; ";")) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x85628")) (; ";")) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" (identifier "free") (argument_list "(*(void **)((int)pppuVar15 + -0x10))" (( "(") (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(void **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (labeled_statement "LAB_0008562b:\n    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);" (statement_identifier "LAB_0008562b") (: ":") (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc)" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)pppuVar15 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0xc)" (( "(") (binary_expression "(int)pppuVar15 + 0xc" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x14)" (( "(") (binary_expression "(int)pppuVar15 + -0x14" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (number_literal "0x8563b")) (; ";")) (expression_statement "free(*(void **)((int)pppuVar15 + -0x10));" (call_expression "free(*(void **)((int)pppuVar15 + -0x10))" (identifier "free") (argument_list "(*(void **)((int)pppuVar15 + -0x10))" (( "(") (pointer_expression "*(void **)((int)pppuVar15 + -0x10)" (* "*") (cast_expression "(void **)((int)pppuVar15 + -0x10)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)pppuVar15 + -0x10)" (( "(") (binary_expression "(int)pppuVar15 + -0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-0x10")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }" (if "if") (parenthesized_expression "(*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)" (pointer_expression "*(int *)((int)pppuVar15 + 0x4c)" (* "*") (cast_expression "(int *)((int)pppuVar15 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x4c)" (( "(") (binary_expression "(int)pppuVar15 + 0x4c" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x4c")) () ")")))) (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;\n      FUN_00017e20();\n    }" ({ "{") (expression_statement "*(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;" (assignment_expression "*(undefined4 *)((int)pppuVar15 + -4) = 0x8571f" (pointer_expression "*(undefined4 *)((int)pppuVar15 + -4)" (* "*") (cast_expression "(undefined4 *)((int)pppuVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + -4)" (( "(") (binary_expression "(int)pppuVar15 + -4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (number_literal "0x8571f")) (; ";")) (expression_statement "FUN_00017e20();" (call_expression "FUN_00017e20()" (identifier "FUN_00017e20") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return *(undefined8 *)((int)pppuVar15 + 0x10);" (return "return") (pointer_expression "*(undefined8 *)((int)pppuVar15 + 0x10)" (* "*") (cast_expression "(undefined8 *)((int)pppuVar15 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x10)" (( "(") (binary_expression "(int)pppuVar15 + 0x10" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar5 = *(uint *)((int)pppuVar15 + 0x38);" (assignment_expression "uVar5 = *(uint *)((int)pppuVar15 + 0x38)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)((int)pppuVar15 + 0x38)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 0x38)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 0x38)" (( "(") (binary_expression "(int)pppuVar15 + 0x38" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" (identifier "iVar9") (= "=") (number_literal "2")) (; ";")) (labeled_statement "LAB_000859cc:\n  *(uint *)((int)pppuVar15 + 4) = uVar5;" (statement_identifier "LAB_000859cc") (: ":") (expression_statement "*(uint *)((int)pppuVar15 + 4) = uVar5;" (assignment_expression "*(uint *)((int)pppuVar15 + 4) = uVar5" (pointer_expression "*(uint *)((int)pppuVar15 + 4)" (* "*") (cast_expression "(uint *)((int)pppuVar15 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pppuVar15 + 4)" (( "(") (binary_expression "(int)pppuVar15 + 4" (cast_expression "(int)pppuVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppuVar15")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar5")) (; ";"))) (goto_statement "goto LAB_000855ac;" (goto "goto") (statement_identifier "LAB_000855ac") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */

type_1 function_1(type_2 *xstate)

{
  type_3 iobuf;
  
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (type_identifier) 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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (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: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (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: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (true)))) condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (switch_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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))))) body: (compound_statement (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (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: (pointer_expression argument: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (break_statement)) (case_statement value: (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)) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (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: (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: (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: (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: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))))) right: (number_literal)) 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: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (case_statement value: (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: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (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)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (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: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (unary_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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))) consequence: (goto_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: (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: (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: (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: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) alternative: (else_clause (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) right: (char_literal (character)))) consequence: (break_statement)) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) 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))))) right: (char_literal (escape_sequence)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (identifier))) (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 (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: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_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))) (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 (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 (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: (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: (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 (call_expression function: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (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: (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: (identifier) arguments: (argument_list (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))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (goto_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: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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: (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: (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: (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: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) (subscript_expression argument: (identifier) index: (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: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (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: (pointer_expression argument: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (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: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (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: (pointer_expression argument: (identifier))) right: (number_literal))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (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: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (subscript_expression argument: (identifier) index: (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: (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))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))))) (while_statement condition: (parenthesized_expression (true)) body: (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))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (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: (pointer_expression argument: (identifier))) right: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (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: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (identifier)))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (break_statement)) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))) (case_statement value: (number_literal) (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (goto_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: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (do_statement body: (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: (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))))))) (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: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) 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: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) 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: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (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: (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: (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: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (unary_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_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))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (unary_expression argument: (identifier)) right: (identifier)) right: (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: (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: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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 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: (identifier) right: (number_literal)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (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: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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: (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))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (labeled_statement label: (statement_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: (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: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) condition: (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: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (parenthesized_expression (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))))) right: (subscript_expression argument: (identifier) index: (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: (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_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 declarator: (abstract_pointer_declarator 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)) right: (identifier))) consequence: (goto_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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))))))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (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: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) 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: (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: (number_literal))) (goto_statement label: (statement_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))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (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: (primitive_type) 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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)) right: (identifier))))) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (labeled_statement label: (statement_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)))) (labeled_statement label: (statement_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: (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 (call_expression function: (identifier) arguments: (argument_list))) (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_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: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))))))))) (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: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (goto_statement label: (statement_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: (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: (number_literal))) (goto_statement label: (statement_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: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (parenthesized_expression (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) index: (number_literal)) 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: (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: (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: (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 (call_expression function: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) 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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))) (labeled_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) 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 (call_expression function: (identifier) 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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (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: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (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)))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier)))) (goto_statement label: (statement_identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.dx replaced with injection: get_pc_thunk_dx */
/* WARNING: Type propagation algorithm not settling */

undefined8 MASKED(void)

{
  uint *puVar1;
  bool bVar2;
  char cVar3;
  uint *__ptr;
  void *pvVar4;
  uint uVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  int *piVar13;
  int *piVar14;
  undefined ***pppuVar15;
  int *piVar16;
  int *piVar17;
  undefined4 **ppuVar18;
  int in_GS_OFFSET;
  byte bVar19;
  undefined **local_6c;
  undefined4 local_68;
  undefined4 **local_64;
  undefined4 *local_60;
  undefined4 local_5c;
  undefined4 local_58;
  char *local_54;
  undefined4 *local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 *local_2c;
  undefined4 local_24;
  undefined4 local_20;
  
  bVar19 = 0;
  pppuVar15 = &local_6c;
  local_6c = &__DT_PLTGOT;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  if (DAT_000dc718 == 0) {
    FUN_000af99c();
  }
  local_64 = &local_38;
  ppuVar18 = local_64;
  for (iVar9 = 6; iVar9 != 0; iVar9 = iVar9 + -1) {
    *ppuVar18 = (undefined4 *)0x0;
    ppuVar18 = ppuVar18 + (uint)bVar19 * -2 + 1;
  }
  local_60 = (undefined4 *)FUN_0001a288();
  local_2c = local_60 + 0x800;
  local_24 = 0x2000;
  if ((local_54 == (char *)0x0) || (*local_54 != '\0')) {
    *local_60 = 0x587a37fd;
    *(undefined2 *)(local_60 + 1) = 0x5a;
    local_30 = 6;
  }
  local_38 = local_60;
  __ptr = (uint *)malloc(0x49c);
  if (__ptr != (uint *)0x0) {
    __ptr[8] = 2;
    pvVar4 = malloc(0x6f28);
    if (pvVar4 == (void *)0x0) {
      free(__ptr);
      __ptr = (uint *)0x0;
    }
    else {
      *(undefined4 *)((int)pvVar4 + 0x3c) = 2;
      *(undefined4 *)((int)pvVar4 + 0x34) = 0x4000000;
      *(undefined4 *)((int)pvVar4 + 0x18) = 0;
      *(undefined4 *)((int)pvVar4 + 0x38) = 0;
      __ptr[0x126] = (uint)pvVar4;
      FUN_00084bcc();
    }
  }
  local_68 = local_34;
  local_5c = 0;
  local_58 = 0;
  iVar9 = 1;
LAB_000855ac:
  uVar5 = ((int *)pppuVar15)[0xf];
  if (uVar5 != ((int *)pppuVar15)[1]) {
LAB_00085687:
    if (iVar9 == 1) {
      bVar2 = false;
      do {
        if (*(char *)(((int *)pppuVar15)[3] + ((int *)pppuVar15)[1]) != '\0') {
          if (bVar2) {
            ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];
          }
          ((int *)pppuVar15)[-1] = 0x856a9;
          FUN_00084bcc();
          ((int *)pppuVar15)[1] = ((int *)pppuVar15)[0xe];
          goto LAB_000856b1;
        }
        ((int *)pppuVar15)[1] = ((int *)pppuVar15)[1] + 1;
        bVar2 = true;
      } while ((uint)((int *)pppuVar15)[1] < uVar5);
      ((int *)pppuVar15)[0xe] = ((int *)pppuVar15)[1];
    }
LAB_000856b1:
    ((int *)pppuVar15)[8] = ((int *)pppuVar15)[0x11];
    __ptr[4] = ((int *)pppuVar15)[1];
    uVar5 = *__ptr;
    ((int *)pppuVar15)[0xb] = (int)(__ptr + 0x15);
    do {
    } while (9 < uVar5);
LAB_000856cf:
    piVar13 = (int *)pppuVar15;
    switch(*(int *)((int)*pppuVar15 + -0x15650 + uVar5 * 4) + (int)*pppuVar15) {
    case 0x8571f:
      goto switchD_000856db_caseD_8571f;
    case 0x8577d:
      goto switchD_000856db_caseD_8577d;
    case 0x857d4:
      goto switchD_000856db_caseD_857d4;
    case 0x858aa:
      goto switchD_000856db_caseD_858aa;
    case 0x85b01:
      ((int *)pppuVar15)[-1] = 0x85b0c;
      cVar3 = FUN_0008543e();
      if (cVar3 == '\0') goto LAB_000858b9;
      *__ptr = 1;
      if ((__ptr[0x26] != 0x587a37fd) || ((short)__ptr[0x27] != 0x5a)) {
        iVar7 = ((int *)pppuVar15)[0x11];
        iVar9 = 5;
        goto LAB_00085a3d;
      }
      ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);
      ((int *)pppuVar15)[-5] = 0x85b5b;
      uVar5 = FUN_000af9bf();
      piVar13 = (int *)pppuVar15 + -1;
      piVar16 = (int *)pppuVar15 + -1;
      if (~uVar5 != __ptr[0x28]) goto LAB_00085a34;
      piVar16 = (int *)pppuVar15 + -1;
      if (*(char *)((int)__ptr + 0x9e) != '\0') break;
      uVar5 = (uint)*(byte *)((int)__ptr + 0x9f);
      __ptr[7] = uVar5;
      piVar16 = (int *)pppuVar15 + -1;
      if (uVar5 < 0x10) {
        if (uVar5 < 2) goto switchD_000856db_caseD_85b95;
        iVar7 = ((int *)pppuVar15)[0x10];
        iVar9 = 2;
        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);
        goto LAB_00085a3d;
      }
      break;
    case 0x85b95:
switchD_000856db_caseD_85b95:
      uVar12 = *(uint *)((int)piVar13 + 0x38);
      pppuVar15 = (undefined ***)piVar13;
      uVar5 = *(uint *)((int)piVar13 + 0x3c);
      if (uVar12 == *(uint *)((int)piVar13 + 0x3c)) goto LAB_000858bd;
      if (*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) == 0) {
        *(uint *)((int)piVar13 + 0x38) = uVar12 + 1;
        __ptr[4] = uVar12;
        *__ptr = 6;
        uVar5 = 6;
        goto LAB_000856cf;
      }
      uVar5 = (uint)*(byte *)(*(int *)((int)piVar13 + 0x34) + uVar12) * 4 + 4;
      __ptr[0xe] = uVar5;
      __ptr[0x25] = uVar5;
      __ptr[0x24] = 0;
      *__ptr = 2;
    case 0x85bd6:
      piVar13[-1] = 0x85be1;
      cVar3 = FUN_0008543e();
      pppuVar15 = (undefined ***)piVar13;
      if (cVar3 == '\0') goto LAB_000858b9;
      __ptr[0x25] = __ptr[0x25] - 4;
      piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);
      piVar13[-5] = 0x85c17;
      uVar12 = FUN_000af9bf();
      uVar5 = __ptr[0x25];
      pppuVar15 = (undefined ***)(piVar13 + -1);
      piVar17 = piVar13 + -1;
      piVar16 = piVar13 + -1;
      if (~uVar12 != *(uint *)((int)__ptr + uVar5 + 0x98)) goto LAB_00085a34;
      __ptr[0x24] = 2;
      bVar19 = *(byte *)((int)__ptr + 0x99);
      piVar16 = piVar13 + -1;
      if ((bVar19 & 0x3f) == 0) {
        if ((bVar19 & 0x40) == 0) {
          __ptr[10] = 0xffffffff;
          __ptr[0xb] = 0xffffffff;
          if ((char)bVar19 < '\0') goto LAB_00086094;
LAB_00085c61:
          __ptr[0xc] = 0xffffffff;
          __ptr[0xd] = 0xffffffff;
          uVar12 = __ptr[0x24];
          uVar8 = uVar5 - uVar12;
        }
        else {
          piVar13[-5] = uVar5;
          piVar13[-6] = 0x860ee;
          iVar9 = FUN_00084b26();
          pppuVar15 = (undefined ***)(piVar13 + -2);
          piVar17 = piVar13 + -2;
          piVar16 = piVar13 + -2;
          if (iVar9 != 1) goto LAB_00085a34;
          __ptr[10] = __ptr[2];
          __ptr[0xb] = __ptr[3];
          uVar5 = __ptr[0x25];
          if (-1 < *(char *)((int)__ptr + 0x99)) goto LAB_00085c61;
LAB_00086094:
          *(uint *)((int)piVar17 + -0x10) = uVar5;
          *(undefined4 *)((int)piVar17 + -0x14) = 0x860a7;
          iVar9 = FUN_00084b26();
          pppuVar15 = (undefined ***)((int)piVar17 + -4);
          piVar16 = (int *)((int)piVar17 + -4);
          if (iVar9 != 1) goto LAB_00085a34;
          __ptr[0xc] = __ptr[2];
          __ptr[0xd] = __ptr[3];
          uVar5 = __ptr[0x25];
          uVar12 = __ptr[0x24];
          uVar8 = uVar5 - uVar12;
        }
        piVar16 = (int *)pppuVar15;
        if (uVar8 < 2) goto LAB_00085a34;
        __ptr[0x24] = uVar12 + 1;
        if (*(char *)((int)__ptr + uVar12 + 0x98) != '!') break;
        __ptr[0x24] = uVar12 + 2;
        if (*(char *)((int)__ptr + uVar12 + 0x99) != '\x01') break;
        if (uVar12 + 2 == uVar5) goto LAB_00085a34;
        uVar8 = uVar12 + 3;
        __ptr[0x24] = uVar8;
        bVar19 = *(byte *)((int)__ptr + uVar12 + 0x9a);
        if (0x27 < bVar19) break;
        uVar12 = __ptr[0x126];
        uVar10 = (bVar19 & 1) + 2 << ((bVar19 >> 1) + 0xb & 0x1f);
        *(uint *)(uVar12 + 0x30) = uVar10;
        if (*(uint *)(uVar12 + 0x34) < uVar10) {
          iVar7 = *(int *)((int)pppuVar15 + 0x44);
          iVar9 = 4;
          goto LAB_00085a3d;
        }
        *(uint *)(uVar12 + 0x2c) = uVar10;
        if ((*(int *)(uVar12 + 0x3c) == 2) && (*(uint *)(uVar12 + 0x38) < uVar10)) {
          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x18);
          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x86023;
          free(*(void **)((int)pppuVar15 + -0x10));
          *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar12 + 0x30);
          *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8602c;
          pvVar4 = malloc(*(size_t *)((int)pppuVar15 + -0x10));
          *(void **)(uVar12 + 0x18) = pvVar4;
          if (pvVar4 == (void *)0x0) {
            *(undefined4 *)(uVar12 + 0x38) = 0;
            *(undefined1 *)(__ptr + 9) = 0;
            if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;
            iVar9 = 3;
            goto LAB_00085999;
          }
          uVar5 = __ptr[0x25];
          uVar8 = __ptr[0x24];
        }
        *(undefined4 *)(uVar12 + 0x68) = 0;
        *(undefined4 *)(uVar12 + 0x40) = 0;
        *(undefined1 *)(uVar12 + 0x50) = 1;
        *(undefined4 *)(uVar12 + 0x6ee4) = 0;
        if (uVar8 < uVar5) {
          __ptr[0x24] = uVar8 + 1;
          cVar3 = *(char *)((int)__ptr + uVar8 + 0x98);
          uVar12 = uVar8 + 1;
          while( true ) {
            if (cVar3 != '\0') goto LAB_00085fed;
            if (uVar12 == uVar5) break;
            __ptr[0x24] = uVar12 + 1;
            cVar3 = *(char *)((int)__ptr + uVar12 + 0x98);
            uVar12 = uVar12 + 1;
          }
        }
        __ptr[0x24] = 0;
        __ptr[0xf] = 0;
        __ptr[0x10] = 0;
        __ptr[0x11] = 0;
        __ptr[0x12] = 0;
        *__ptr = 3;
switchD_000856db_caseD_85d53:
        __ptr[4] = ((int *)pppuVar15)[0xe];
        __ptr[5] = ((int *)pppuVar15)[0x11];
        ((int *)pppuVar15)[-1] = 0x85d70;
        iVar9 = FUN_00084c5e();
        ((int *)pppuVar15)[7] = iVar9;
        uVar8 = (((int *)pppuVar15)[0xe] - __ptr[4]) + __ptr[0xf];
        uVar10 = __ptr[0x10] + (uint)CARRY4(((int *)pppuVar15)[0xe] - __ptr[4],__ptr[0xf]);
        __ptr[0xf] = uVar8;
        __ptr[0x10] = uVar10;
        iVar7 = ((int *)pppuVar15)[0x11];
        uVar5 = __ptr[5];
        ((int *)pppuVar15)[9] = uVar5;
        uVar5 = iVar7 - uVar5;
        ((int *)pppuVar15)[10] = uVar5;
        uVar12 = uVar5 + __ptr[0x11];
        uVar5 = __ptr[0x12] + (uint)CARRY4(uVar5,__ptr[0x11]);
        __ptr[0x11] = uVar12;
        __ptr[0x12] = uVar5;
        if ((__ptr[0xb] < uVar10 || __ptr[0xb] - uVar10 < (uint)(__ptr[10] < uVar8)) ||
           (__ptr[0xd] < uVar5 || __ptr[0xd] - uVar5 < (uint)(__ptr[0xc] < uVar12))) {
          iVar9 = 7;
          goto LAB_00085a3d;
        }
        if (__ptr[7] == 1) {
          ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);
          ((int *)pppuVar15)[-5] = 0x85df3;
          uVar5 = FUN_000af9bf();
          __ptr[6] = ~uVar5;
          pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);
        }
        if (((int *)pppuVar15)[7] != 1) {
          iVar9 = ((int *)pppuVar15)[7];
          goto LAB_00085af4;
        }
        piVar16 = (int *)pppuVar15;
        if (((__ptr[0xb] & __ptr[10]) != 0xffffffff) &&
           (__ptr[0xb] != __ptr[0x10] || __ptr[10] != __ptr[0xf])) goto LAB_00085a34;
        uVar5 = __ptr[0x11];
        if (((__ptr[0xd] & __ptr[0xc]) != 0xffffffff) &&
           (__ptr[0xd] != __ptr[0x12] || __ptr[0xc] != uVar5)) goto LAB_00085a34;
        uVar12 = __ptr[0x15];
        uVar10 = __ptr[0xf] + __ptr[0x15];
        uVar8 = __ptr[0xe] + uVar10;
        bVar19 = *(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);
        __ptr[0x15] = uVar8 + bVar19;
        __ptr[0x16] = __ptr[0x10] + __ptr[0x16] + (uint)CARRY4(__ptr[0xf],uVar12) +
                      (uint)CARRY4(__ptr[0xe],uVar10) + (uint)CARRY4(uVar8,(uint)bVar19);
        puVar1 = __ptr + 0x17;
        uVar12 = *puVar1;
        *puVar1 = *puVar1 + uVar5;
        __ptr[0x18] = __ptr[0x18] + __ptr[0x12] + (uint)CARRY4(uVar12,uVar5);
        ((int *)pppuVar15)[-4] = *(undefined4 *)((int)*pppuVar15 + 0xcf8);
        ((int *)pppuVar15)[-5] = 0x85e83;
        uVar5 = FUN_000af9bf();
        __ptr[0x19] = ~uVar5;
        puVar1 = __ptr + 0x13;
        uVar5 = *puVar1;
        *puVar1 = *puVar1 + 1;
        __ptr[0x14] = __ptr[0x14] + (uint)(0xfffffffe < uVar5);
        *__ptr = 4;
        pppuVar15 = (undefined ***)((int *)pppuVar15 + -1);
switchD_000856db_caseD_85e9a:
        uVar12 = __ptr[0xf];
        uVar8 = __ptr[0x10];
        if ((uVar12 & 3) != 0) {
          uVar10 = *(uint *)((int)pppuVar15 + 0x38);
          uVar5 = *(uint *)((int)pppuVar15 + 0x3c);
          if (uVar10 == uVar5) goto LAB_000858bd;
          iVar9 = *(int *)((int)pppuVar15 + 0x34);
          uVar11 = uVar10 + 1;
          *(uint *)((int)pppuVar15 + 0x38) = uVar11;
          piVar16 = (int *)pppuVar15;
          if (*(char *)(iVar9 + uVar10) != '\0') goto LAB_00085a34;
          uVar8 = uVar8 + (0xfffffffe < uVar12);
          while( true ) {
            uVar12 = uVar12 + 1;
            __ptr[0xf] = uVar12;
            __ptr[0x10] = uVar8;
            if ((uVar12 & 3) == 0) break;
            if (uVar11 == uVar5) goto LAB_000858bd;
            uVar11 = uVar11 + 1;
            *(uint *)((int)pppuVar15 + 0x38) = uVar11;
            uVar8 = uVar8 + (0xfffffffe < uVar12);
            if (*(char *)(iVar9 + -1 + uVar11) != '\0') goto LAB_00085a34;
          }
        }
        *__ptr = 5;
switchD_000856db_caseD_85eea:
        if (__ptr[7] == 1) {
          uVar12 = ((int *)pppuVar15)[0xf];
          iVar9 = ((int *)pppuVar15)[0xd];
          uVar5 = ((int *)pppuVar15)[0xe];
          if (uVar12 == uVar5) goto LAB_000858bd;
          uVar10 = __ptr[6];
          ((int *)pppuVar15)[7] = uVar10;
          uVar11 = __ptr[1];
          uVar8 = uVar5 + 1;
          ((int *)pppuVar15)[0xe] = uVar8;
          piVar13 = (int *)pppuVar15;
          if (*(char *)(iVar9 + uVar5) != (char)(uVar10 >> ((byte)uVar11 & 0x1f)))
          goto LAB_00085802;
          uVar11 = uVar11 + 8;
          __ptr[1] = uVar11;
          while (uVar11 < 0x20) {
            uVar5 = uVar12;
            if (uVar12 == uVar8) goto LAB_000858bd;
            uVar11 = __ptr[1];
            uVar8 = uVar8 + 1;
            ((int *)pppuVar15)[0xe] = uVar8;
            if (*(char *)(iVar9 + -1 + uVar8) !=
                (char)((uint)((int *)pppuVar15)[7] >> ((byte)uVar11 & 0x1f))) goto LAB_00085802;
            uVar11 = uVar11 + 8;
            __ptr[1] = uVar11;
          }
          __ptr[6] = 0;
          __ptr[1] = 0;
        }
        else {
          uVar12 = __ptr[1];
          uVar8 = (uint)*(byte *)((int)*pppuVar15 + -0x15628 + __ptr[7]);
          if (uVar12 < uVar8) {
            uVar10 = ((int *)pppuVar15)[0xe];
            uVar5 = ((int *)pppuVar15)[0xf];
            if (uVar10 == uVar5) goto LAB_000858bd;
            uVar11 = uVar10;
            while( true ) {
              uVar11 = uVar11 + 1;
              if (uVar11 == (uVar10 - uVar12) + uVar8) break;
              if (uVar11 == uVar5) {
                ((int *)pppuVar15)[0xe] = uVar5;
                __ptr[1] = (uVar11 - uVar10) + uVar12;
                goto LAB_000858bd;
              }
            }
            ((int *)pppuVar15)[0xe] = uVar11;
          }
          __ptr[1] = 0;
        }
        *__ptr = 1;
        uVar5 = 1;
        goto LAB_000856cf;
      }
      break;
    case 0x85d53:
      goto switchD_000856db_caseD_85d53;
    case 0x85e9a:
      goto switchD_000856db_caseD_85e9a;
    case 0x85eea:
      goto switchD_000856db_caseD_85eea;
    }
LAB_00085fed:
    iVar7 = *(int *)((int)piVar16 + 0x44);
    iVar9 = 6;
    pppuVar15 = (undefined ***)piVar16;
    goto LAB_00085a3d;
  }
  ((int *)pppuVar15)[-1] = 0x855cf;
  uVar5 = FUN_0001b3fd();
  if ((int)uVar5 < 0) {
    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x515c;
    ((int *)pppuVar15)[-5] = 0x855ea;
    FUN_0001930a();
    ((int *)pppuVar15)[4] = -1;
    ((int *)pppuVar15)[5] = -1;
  }
  else if ((uVar5 != 0) || (iVar9 != 1)) {
    ((int *)pppuVar15)[0xf] = uVar5;
    ((int *)pppuVar15)[0xe] = 0;
    ((int *)pppuVar15)[1] = 0;
    goto LAB_00085687;
  }
  if (__ptr == (uint *)0x0) goto LAB_0008562b;
  goto LAB_00085601;
switchD_000856db_caseD_8571f:
  piVar13 = (int *)pppuVar15;
  do {
    *(undefined4 *)((int)piVar13 + -0x10) = *(undefined4 *)((int)piVar13 + 0x3c);
    *(undefined4 *)((int)piVar13 + -0x14) = 0x8573a;
    iVar9 = FUN_00084b26();
    pppuVar15 = (undefined ***)((int)piVar13 + -4);
    if (iVar9 != 1) {
      *(undefined4 *)((int)piVar13 + -8) = 0x85af4;
      FUN_00084c19();
      pppuVar15 = (undefined ***)((int)piVar13 + -4);
LAB_00085af4:
      if (iVar9 == 0) goto LAB_000858b9;
      goto LAB_00085807;
    }
    uVar5 = __ptr[0x1a];
    if (uVar5 == 1) {
      puVar1 = __ptr + 0x1f;
      uVar5 = *puVar1;
      *puVar1 = *puVar1 + __ptr[2];
      __ptr[0x20] = __ptr[0x20] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);
      __ptr[0x1a] = 2;
LAB_00085768:
      uVar5 = __ptr[0x1d];
      uVar12 = __ptr[0x1e];
      pppuVar15 = (undefined ***)((int)piVar13 + -4);
    }
    else {
      if (uVar5 != 0) {
        if (uVar5 != 2) goto LAB_00085768;
        puVar1 = __ptr + 0x21;
        uVar5 = *puVar1;
        *puVar1 = *puVar1 + __ptr[2];
        __ptr[0x22] = __ptr[0x22] + __ptr[3] + (uint)CARRY4(uVar5,__ptr[2]);
        *(undefined4 *)((int)piVar13 + -0x14) = *(undefined4 *)(*(int *)((int)piVar13 + -4) + 0xcf8)
        ;
        *(undefined4 *)((int)piVar13 + -0x18) = 0x85a94;
        uVar5 = FUN_000af9bf();
        __ptr[0x23] = ~uVar5;
        uVar5 = __ptr[0x1d] - 1;
        uVar12 = (__ptr[0x1e] - 1) + (uint)(__ptr[0x1d] != 0);
        __ptr[0x1d] = uVar5;
        __ptr[0x1e] = uVar12;
        __ptr[0x1a] = 1;
        pppuVar15 = (undefined ***)((int)piVar13 + -8);
        goto LAB_0008576e;
      }
      uVar5 = __ptr[2];
      uVar12 = __ptr[3];
      __ptr[0x1d] = uVar5;
      __ptr[0x1e] = uVar12;
      piVar13 = (int *)((int)piVar13 + -4);
      if (__ptr[0x14] != uVar12 || __ptr[0x13] != uVar5) goto LAB_00085802;
      __ptr[0x1a] = 1;
    }
LAB_0008576e:
    piVar13 = (int *)pppuVar15;
  } while (uVar12 != 0 || uVar5 != 0);
  *__ptr = 7;
switchD_000856db_caseD_8577d:
  uVar5 = __ptr[0x1b];
  iVar9 = *(int *)((int)pppuVar15 + 0x38) + 1;
  uVar12 = __ptr[4];
LAB_00085795:
  if ((~uVar12 + iVar9 + uVar5 & 3) == 0) {
    *(undefined4 *)((int)pppuVar15 + -4) = 0x857ae;
    uVar6 = FUN_00084c19();
    *(undefined4 *)((int)pppuVar15 + -4) = uVar6;
    *(undefined4 *)((int)pppuVar15 + -8) = 0x14;
    *(uint **)((int)pppuVar15 + -0xc) = __ptr + 0x1f;
    *(uint **)((int)pppuVar15 + -0x10) = __ptr + 0x15;
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x857c2;
    iVar9 = FUN_00016390();
    piVar16 = (int *)pppuVar15;
    if (iVar9 != 0) goto LAB_000858fc;
    *__ptr = 8;
switchD_000856db_caseD_857d4:
    uVar12 = *(uint *)((int)pppuVar15 + 0x3c);
    iVar9 = *(int *)((int)pppuVar15 + 0x34);
    uVar5 = *(uint *)((int)pppuVar15 + 0x38);
    if (uVar12 != uVar5) {
      uVar8 = __ptr[6];
      uVar10 = __ptr[1];
      *(uint *)((int)pppuVar15 + 0x24) = uVar5 + 1;
      *(uint *)((int)pppuVar15 + 0x38) = uVar5 + 1;
      piVar13 = (int *)pppuVar15;
      if (*(char *)(iVar9 + uVar5) != (char)(uVar8 >> ((byte)uVar10 & 0x1f))) {
LAB_00085802:
        iVar9 = 7;
        pppuVar15 = (undefined ***)piVar13;
LAB_00085807:
        *(undefined1 *)(__ptr + 9) = 0;
        iVar7 = *(int *)((int)pppuVar15 + 0x44);
        goto joined_r0x00085811;
      }
      uVar10 = uVar10 + 8;
      __ptr[1] = uVar10;
      if (uVar10 < 0x20) {
        *(uint *)((int)pppuVar15 + 0x1c) = uVar12;
        iVar7 = *(int *)((int)pppuVar15 + 0x24);
        do {
          if (*(int *)((int)pppuVar15 + 0x1c) == iVar7) {
            uVar5 = *(uint *)((int)pppuVar15 + 0x1c);
            goto LAB_000858bd;
          }
          uVar5 = __ptr[1];
          iVar7 = iVar7 + 1;
          *(int *)((int)pppuVar15 + 0x38) = iVar7;
          if (*(char *)(iVar9 + -1 + iVar7) != (char)(uVar8 >> ((byte)uVar5 & 0x1f)))
          goto LAB_00085802;
          uVar5 = uVar5 + 8;
          __ptr[1] = uVar5;
        } while (uVar5 < 0x20);
      }
      __ptr[6] = 0;
      __ptr[1] = 0;
      __ptr[0x25] = 0xc;
      *__ptr = 9;
switchD_000856db_caseD_858aa:
      piVar13[-1] = 0x858b5;
      cVar3 = FUN_0008543e();
      pppuVar15 = (undefined ***)piVar13;
      if (cVar3 == '\0') {
LAB_000858b9:
        uVar5 = *(uint *)((int)pppuVar15 + 0x38);
        goto LAB_000858bd;
      }
      piVar16 = piVar13;
      if (*(short *)((int)__ptr + 0xa2) == 0x5a59) {
        piVar13[-4] = *(undefined4 *)(*piVar13 + 0xcf8);
        piVar13[-5] = 0x85938;
        uVar5 = FUN_000af9bf();
        piVar14 = piVar13 + -1;
        pppuVar15 = (undefined ***)(piVar13 + -1);
        piVar16 = piVar13 + -1;
        if (~uVar5 != __ptr[0x26]) goto LAB_000858fc;
        iVar9 = piVar13[0x10];
        if (((__ptr[0x1c] >> 2 != 0 || __ptr[0x27] != (__ptr[0x1b] >> 2 | __ptr[0x1c] << 0x1e)) ||
            ((char)__ptr[0x28] != '\0')) || ((uint)*(byte *)((int)__ptr + 0xa1) != __ptr[7])) {
          *(undefined1 *)(__ptr + 9) = 0;
          if (iVar9 != 0) {
            iVar9 = 7;
            pppuVar15 = (undefined ***)(piVar13 + -1);
            goto LAB_00085999;
          }
          goto LAB_00085820;
        }
        *(undefined1 *)(__ptr + 9) = 0;
        if (iVar9 != 0) {
          iVar9 = 1;
          pppuVar15 = (undefined ***)(piVar13 + -1);
          goto LAB_00085999;
        }
        goto LAB_000859c3;
      }
LAB_000858fc:
      pppuVar15 = (undefined ***)piVar16;
      *(undefined1 *)(__ptr + 9) = 0;
      if (*(int *)((int)pppuVar15 + 0x44) == 0) goto LAB_00085820;
      iVar9 = 7;
      goto LAB_00085999;
    }
  }
  else {
    if (*(int *)((int)pppuVar15 + 0x3c) + 1 != iVar9) goto LAB_00085a24;
    *(undefined4 *)((int)pppuVar15 + -4) = 0x85a1b;
    FUN_00084c19();
    uVar5 = *(uint *)((int)pppuVar15 + 0x38);
  }
LAB_000858bd:
  iVar9 = *(int *)((int)pppuVar15 + 0x44);
  if ((uVar5 == *(uint *)((int)pppuVar15 + 4)) && (*(int *)((int)pppuVar15 + 0x20) == iVar9)) {
    if ((char)__ptr[9] == '\0') {
      *(undefined1 *)(__ptr + 9) = 1;
      if (iVar9 == 0) goto LAB_000859cc;
      iVar9 = 0;
      goto LAB_00085999;
    }
    if (iVar9 != 0) {
      iVar9 = 8;
      goto LAB_00085999;
    }
    goto LAB_00085820;
  }
  *(undefined1 *)(__ptr + 9) = 0;
  if (iVar9 != 0) {
    iVar9 = 0;
    goto LAB_00085999;
  }
  iVar9 = 0;
  goto LAB_000859cc;
LAB_00085a24:
  *(int *)((int)pppuVar15 + 0x38) = iVar9;
  iVar9 = iVar9 + 1;
  piVar16 = (int *)pppuVar15;
  if (*(char *)(*(int *)((int)pppuVar15 + 0x34) + -2 + iVar9) != '\0') goto LAB_00085a34;
  goto LAB_00085795;
LAB_00085a34:
  iVar7 = *(int *)((int)piVar16 + 0x44);
  iVar9 = 7;
  pppuVar15 = (undefined ***)piVar16;
LAB_00085a3d:
  *(undefined1 *)(__ptr + 9) = 0;
joined_r0x00085811:
  if (iVar7 != 0) {
LAB_00085999:
    *(undefined4 *)((int)pppuVar15 + -4) = 0x859a8;
    FUN_000886f2();
    puVar1 = (uint *)((int)pppuVar15 + 0x10);
    uVar5 = *puVar1;
    *puVar1 = *puVar1 + *(uint *)((int)pppuVar15 + 0x44);
    *(int *)((int)pppuVar15 + 0x14) =
         *(int *)((int)pppuVar15 + 0x14) + (uint)CARRY4(uVar5,*(uint *)((int)pppuVar15 + 0x44));
    *(undefined4 *)((int)pppuVar15 + 0x44) = 0;
    piVar14 = (int *)pppuVar15;
    if (iVar9 == 1) {
LAB_000859c3:
      uVar5 = *(uint *)((int)piVar14 + 0x38);
      iVar9 = 1;
      pppuVar15 = (undefined ***)piVar14;
      goto LAB_000859cc;
    }
    if (iVar9 == 0) {
      uVar5 = *(uint *)((int)pppuVar15 + 0x38);
      iVar9 = 0;
      goto LAB_000859cc;
    }
  }
  if (iVar9 != 2) {
LAB_00085820:
    ((int *)pppuVar15)[-4] = (int)*pppuVar15 + -0x61e1;
    ((int *)pppuVar15)[-5] = 0x85833;
    FUN_0001930a();
    ((int *)pppuVar15)[4] = -1;
    ((int *)pppuVar15)[5] = -1;
LAB_00085601:
    uVar5 = __ptr[0x126];
    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)(uVar5 + 0x18);
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85618;
    free(*(void **)((int)pppuVar15 + -0x10));
    *(uint *)((int)pppuVar15 + -0x10) = uVar5;
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85620;
    free(*(void **)((int)pppuVar15 + -0x10));
    *(uint **)((int)pppuVar15 + -0x10) = __ptr;
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x85628;
    free(*(void **)((int)pppuVar15 + -0x10));
LAB_0008562b:
    *(undefined4 *)((int)pppuVar15 + -0x10) = *(undefined4 *)((int)pppuVar15 + 0xc);
    *(undefined4 *)((int)pppuVar15 + -0x14) = 0x8563b;
    free(*(void **)((int)pppuVar15 + -0x10));
    if (*(int *)((int)pppuVar15 + 0x4c) != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
      *(undefined4 *)((int)pppuVar15 + -4) = 0x8571f;
      FUN_00017e20();
    }
    return *(undefined8 *)((int)pppuVar15 + 0x10);
  }
  uVar5 = *(uint *)((int)pppuVar15 + 0x38);
  iVar9 = 2;
LAB_000859cc:
  *(uint *)((int)pppuVar15 + 4) = uVar5;
  goto LAB_000855ac;
}

