
/* WARNING: Type propagation algorithm not settling */

void png_handle_PLTE(png_structrp png_ptr,png_inforp info_ptr,png_uint_32 length)

{
  ushort uVar1;
  __jmp_buf_tag *p_Var2;
  undefined *puVar3;
  uint uVar4;
  png_structrp ppVar5;
  png_fixed_point pVar6;
  png_fixed_point pVar7;
  undefined1 *puVar8;
  undefined1 *puVar9;
  png_fixed_point pVar10;
  png_fixed_point pVar11;
  png_fixed_point pVar12;
  png_structrp ppVar13;
  char *pcVar14;
  int iVar15;
  png_byte **pppVar16;
  png_voidp pvVar17;
  jmp_buf *pa_Var18;
  png_uint_32 pVar19;
  int iVar20;
  png_structrp ppVar21;
  png_structrp ppVar22;
  png_const_bytep ppVar23;
  png_structrp info_ptr_00;
  png_uint_32 pVar24;
  int iVar25;
  void *pvVar26;
  png_structrp ppVar27;
  png_structrp unaff_s0;
  png_structrp unaff_s1;
  int *piVar28;
  int *piVar29;
  png_structrp unaff_s2;
  png_structrp ppVar30;
  png_const_bytep ppVar31;
  png_structrp ppVar32;
  byte *unaff_s5;
  ulong *read_buffer;
  png_structrp unaff_s6;
  png_bytep unaff_s7;
  undefined *puVar33;
  code *pcVar34;
  png_structrp unaff_s8;
  code *pcVar35;
  code *pcVar36;
  code *pcVar37;
  png_alloc_size_t *in_stack_fffff634;
  png_structrp ppStack_9c0;
  png_colorspacerp ppStack_9b4;
  png_byte **pppStack_9a0;
  png_struct pStack_99c;
  int iStack_4c4;
  png_structrp ppStack_4c0;
  png_structrp ppStack_4bc;
  png_structrp ppStack_4b8;
  png_structrp ppStack_4b4;
  png_structrp ppStack_4b0;
  byte *pbStack_4ac;
  png_structrp ppStack_4a8;
  png_bytep ppStack_4a4;
  png_structrp ppStack_4a0;
  code *pcStack_49c;
  png_structrp appStack_490 [2];
  code *pcStack_488;
  byte bStack_47d;
  void *pvStack_47c;
  png_structrp ppStack_478;
  int *piStack_474;
  png_structrp ppStack_470;
  code *pcStack_46c;
  code *pcStack_458;
  undefined1 *puStack_44c;
  undefined1 *puStack_448;
  png_fixed_point pStack_444;
  png_fixed_point pStack_440;
  png_fixed_point pStack_43c;
  png_fixed_point pStack_438;
  png_fixed_point pStack_434;
  png_fixed_point pStack_430;
  void *pvStack_40c;
  png_structrp ppStack_404;
  int *piStack_400;
  png_structrp ppStack_3fc;
  png_structrp ppStack_3f8;
  code *pcStack_3f4;
  code *pcStack_3e0;
  byte abStack_3d8 [4];
  void *pvStack_3d4;
  png_structrp ppStack_3cc;
  int *piStack_3c8;
  png_structrp ppStack_3c4;
  png_structrp ppStack_3c0;
  png_inforp ppStack_3bc;
  byte *pbStack_3b8;
  code *pcStack_3b4;
  png_structrp ppStack_3a8;
  code *pcStack_3a0;
  void *pvStack_394;
  png_structrp ppStack_38c;
  png_structrp ppStack_388;
  png_structrp ppStack_384;
  undefined *puStack_380;
  code *pcStack_37c;
  undefined *puStack_368;
  png_structrp ppStack_35c;
  png_structrp ppStack_358;
  code *pcStack_354;
  jmp_buf *local_334;
  png_color palette [256];
  png_byte buf [3];
  
  ppVar32 = (png_structrp)PTR___stack_chk_guard_000534bc;
  uVar4 = png_ptr->mode;
  iVar20 = *(int *)PTR___stack_chk_guard_000534bc;
  ppVar27 = (png_structrp)length;
  if ((uVar4 & 1) == 0) {
LAB_0002bebc:
    length = (png_uint_32)unaff_s5;
    (*(code *)PTR_png_chunk_error_0005351c)();
  }
  else {
    ppVar13 = png_ptr;
    if ((uVar4 & 2) != 0) {
LAB_0002beac:
      (*(code *)PTR_png_chunk_error_0005351c)();
      png_ptr = ppVar13;
      goto LAB_0002bebc;
    }
    unaff_s1 = png_ptr;
    if ((uVar4 & 4) != 0) {
      png_crc_finish(png_ptr,length);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);
LAB_0002bd88:
      if (iVar20 == *(int *)ppVar32) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_00053484)();
      unaff_s5 = (byte *)length;
      goto LAB_0002beac;
    }
    png_ptr->mode = uVar4 | 2;
    if ((png_ptr->color_type & 2) == 0) {
      png_crc_finish(png_ptr,length);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);
      goto LAB_0002bd88;
    }
    unaff_s2 = (png_structrp)0xaaaa0000;
    if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {
      local_334 = (jmp_buf *)((int)unaff_s2 << 1);
      if (png_ptr->color_type == 3) {
        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));
        if ((int)ppVar27 < (int)unaff_s2) {
          unaff_s2 = ppVar27;
        }
        local_334 = (jmp_buf *)((int)unaff_s2 << 1);
        if (0 < (int)unaff_s2) goto LAB_0002bc70;
      }
      else if (unaff_s2 != (png_structrp)0x0) {
LAB_0002bc70:
        unaff_s7 = buf;
        unaff_s6 = (png_structrp)
                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +
                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +
                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);
        ppVar27 = (png_structrp)palette;
        do {
          png_crc_read(png_ptr,unaff_s7,3);
          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);
          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];
          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];
          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];
          ppVar27 = unaff_s0;
        } while (unaff_s6 != unaff_s0);
      }
      unaff_s8 = (png_structrp)palette;
      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +
                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));
      ppVar27 = unaff_s8;
      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);
      if (png_ptr->num_trans == 0) {
        if (info_ptr != (png_inforp)0x0) {
          uVar4 = info_ptr->valid;
          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;
          goto LAB_0002bd24;
        }
      }
      else {
        png_ptr->num_trans = 0;
        if (info_ptr == (png_inforp)0x0) {
          ppVar13 = png_ptr;
          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);
        }
        else {
LAB_0002bd04:
          puVar3 = PTR_png_chunk_benign_error_0005349c;
          puVar33 = PTR_s_nt_0005301c;
          info_ptr->num_trans = 0;
          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);
          uVar4 = info_ptr->valid;
LAB_0002bd24:
          if ((uVar4 & 0x40) != 0) {
            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);
            uVar4 = info_ptr->valid;
          }
          ppVar13 = png_ptr;
          if ((uVar4 & 0x20) != 0) {
            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);
          }
        }
      }
      goto LAB_0002bd88;
    }
    png_crc_finish(png_ptr,length);
    if (png_ptr->color_type != '\x03') {
      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);
      goto LAB_0002bd88;
    }
  }
  pcVar35 = png_handle_IEND;
  puVar33 = PTR_png_chunk_error_0005351c;
  (*(code *)PTR_png_chunk_error_0005351c)();
  puStack_368 = puVar33 + 0x2f114;
  ppStack_35c = unaff_s0;
  ppStack_358 = unaff_s1;
  pcStack_354 = pcVar35;
  if ((png_ptr->mode & 5) == 5) {
    png_ptr->mode = png_ptr->mode | 0x18;
    png_crc_finish(png_ptr,(png_uint_32)ppVar27);
    if (ppVar27 != (png_structrp)0x0) {
                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);
      return;
    }
    return;
  }
  pcVar34 = *(code **)(puVar33 + 0x27640);
  pcVar36 = png_handle_gAMA;
  ppVar21 = (png_structrp)(*(int *)(puVar33 + 0x27140) + 0x68c);
  (*pcVar34)();
  pcVar35 = pcVar34 + 0x2f078;
  piVar28 = *(int **)(pcVar34 + 0x27544);
  puStack_380 = (undefined *)ppVar32;
  pvStack_394 = (void *)*piVar28;
  ppVar13 = png_ptr;
  ppStack_3cc = unaff_s0;
  pcStack_3a0 = pcVar35;
  ppStack_38c = unaff_s0;
  ppStack_388 = unaff_s1;
  ppStack_384 = unaff_s2;
  pcStack_37c = pcVar36;
  if ((png_ptr->mode & 1) != 0) {
    if ((png_ptr->mode & 6) == 0) {
      if (ppVar27 == (png_structrp)&DAT_00000004) {
        ppVar32 = (png_structrp)&stack0xfffffc68;
        png_crc_read(png_ptr,(png_bytep)ppVar32,4);
        ppVar23 = (png_const_bytep)0x0;
        iVar20 = png_crc_finish(png_ptr,0);
        if (iVar20 == 0) {
          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);
          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);
          ppVar13 = png_ptr;
          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);
        }
      }
      else {
        png_crc_finish(png_ptr,(png_uint_32)ppVar27);
        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);
      }
    }
    else {
      png_crc_finish(png_ptr,(png_uint_32)ppVar27);
      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);
    }
    pcVar35 = pcStack_3a0;
    if (pvStack_394 == (void *)*piVar28) {
      return;
    }
    (**(code **)(pcStack_3a0 + -0x7b6c))();
    ppStack_3cc = png_ptr;
    unaff_s2 = ppVar21;
  }
  pcVar34 = *(code **)(pcVar35 + -0x7ad4);
  pcVar36 = png_handle_sBIT;
  ppVar22 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);
  (*pcVar34)();
  pcVar35 = pcVar34 + 0x2ef14;
  piVar29 = *(int **)(pcVar34 + 0x273e0);
  pvStack_3d4 = (void *)*piVar29;
  ppVar21 = ppVar13;
  ppStack_404 = ppStack_3cc;
  pcStack_3e0 = pcVar35;
  piStack_3c8 = piVar28;
  ppStack_3c4 = unaff_s2;
  ppStack_3c0 = ppVar32;
  ppStack_3bc = info_ptr;
  pbStack_3b8 = (byte *)length;
  pcStack_3b4 = pcVar36;
  if ((ppVar13->mode & 1) != 0) {
    if ((ppVar13->mode & 6) == 0) {
      if ((ppVar22 == (png_structrp)0x0) ||
         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {
        ppVar32 = (png_structrp)0x3;
        if (ppVar13->color_type == '\x03') {
          ppVar30 = (png_structrp)&DAT_00000008;
          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;
LAB_0002c268:
          iVar20 = *(int *)(pcVar34 + 0x26f40);
        }
        else {
          ppVar32 = (png_structrp)(uint)ppVar13->channels;
          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;
          if (ppVar32 != ppVar27) goto LAB_0002c268;
LAB_0002c168:
          iVar20 = *(int *)(pcVar34 + 0x26f40);
          if (ppVar32 < (png_structrp)&DAT_00000005) {
            abStack_3d8[0] = (byte)ppVar30;
            ppVar27 = ppVar32;
            abStack_3d8[1] = abStack_3d8[0];
            abStack_3d8[2] = abStack_3d8[0];
            abStack_3d8[3] = abStack_3d8[0];
            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);
            iVar20 = png_crc_finish(ppVar13,0);
            unaff_s2 = ppVar30;
            info_ptr = (png_inforp)ppVar32;
            length = (png_uint_32)abStack_3d8;
            if (iVar20 == 0) {
              if (ppVar32 == (png_structrp)0x0) {
LAB_0002c1f4:
                if ((ppVar13->color_type & 2) == 0) {
                  (ppVar13->sig_bit).gray = abStack_3d8[0];
                  (ppVar13->sig_bit).red = abStack_3d8[0];
                  (ppVar13->sig_bit).green = abStack_3d8[0];
                  (ppVar13->sig_bit).blue = abStack_3d8[0];
                  (ppVar13->sig_bit).alpha = abStack_3d8[1];
                }
                else {
                  (ppVar13->sig_bit).red = abStack_3d8[0];
                  (ppVar13->sig_bit).green = abStack_3d8[1];
                  (ppVar13->sig_bit).blue = abStack_3d8[2];
                  (ppVar13->sig_bit).alpha = abStack_3d8[3];
                }
                ppVar27 = (png_structrp)&ppVar13->sig_bit;
                ppVar21 = ppVar13;
                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);
                info_ptr = (png_inforp)ppVar32;
              }
              else {
                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&
                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,
                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {
                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);
                  do {
                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);
                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;
                    ppVar5 = (png_structrp)
                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;
                  } while ((ppVar5 != (png_structrp)0x0) &&
                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));
                }
                ppVar21 = ppVar13;
                (**(code **)(pcStack_3e0 + -0x7b54))
                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);
                info_ptr = (png_inforp)ppVar32;
              }
            }
            goto LAB_0002c230;
          }
        }
        ppStack_3a8 = ppVar27;
        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);
        ppVar27 = ppStack_3a8;
        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);
        unaff_s2 = ppVar30;
        info_ptr = (png_inforp)ppVar32;
      }
      else {
        png_crc_finish(ppVar13,(png_uint_32)ppVar27);
        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);
      }
    }
    else {
      png_crc_finish(ppVar13,(png_uint_32)ppVar27);
      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);
    }
LAB_0002c230:
    pcVar35 = pcStack_3e0;
    if (pvStack_3d4 == (void *)*piVar29) {
      return;
    }
    (**(code **)(pcStack_3e0 + -0x7b6c))();
    ppStack_404 = ppVar13;
  }
  pcVar34 = *(code **)(pcVar35 + -0x7ad4);
  pcVar36 = png_handle_cHRM;
  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);
  (*pcVar34)();
  pcVar35 = pcVar34 + 0x2eca8;
  piVar28 = *(int **)(pcVar34 + 0x27174);
  pvStack_40c = (void *)*piVar28;
  ppVar32 = ppVar21;
  ppVar13 = ppStack_404;
  pcStack_458 = pcVar35;
  piStack_400 = piVar29;
  ppStack_3fc = unaff_s2;
  ppStack_3f8 = ppVar22;
  pcStack_3f4 = pcVar36;
  if ((ppVar21->mode & 1) != 0) {
    if ((ppVar21->mode & 6) == 0) {
      if (ppVar27 == (png_structrp)0x20) {
        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);
        ppVar23 = (png_const_bytep)0x0;
        iVar20 = png_crc_finish(ppVar21,0);
        ppVar22 = (png_structrp)&stack0xfffffbd4;
        if (iVar20 == 0) {
          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);
          pStack_434 = pVar6;
          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);
          pStack_430 = pVar7;
          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);
          puStack_44c = puVar8;
          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);
          puStack_448 = puVar9;
          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);
          pStack_444 = pVar10;
          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);
          pStack_440 = pVar11;
          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);
          pStack_43c = pVar12;
          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);
          if (pVar6 == -1) {
            iVar20 = *(int *)(pcStack_458 + -0x7fd4);
          }
          else {
            iVar20 = *(int *)(pcStack_458 + -0x7fd4);
            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&
                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {
              uVar1 = (ppVar21->colorspace).flags;
              ppVar32 = ppVar21;
              if (-1 < (short)uVar1) {
                if ((uVar1 & 0x10) == 0) {
                  (ppVar21->colorspace).flags = uVar1 | 0x10;
                  ppVar27 = (png_structrp)&puStack_44c;
                  png_colorspace_set_chromaticities
                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);
                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);
                }
                else {
                  (ppVar21->colorspace).flags = uVar1 | 0x8000;
                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);
                  (**(code **)(pcStack_458 + -0x7b54))
                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);
                }
              }
              goto LAB_0002c3d4;
            }
          }
          ppVar32 = ppVar21;
          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);
        }
      }
      else {
        png_crc_finish(ppVar21,(png_uint_32)ppVar27);
        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);
      }
    }
    else {
      png_crc_finish(ppVar21,(png_uint_32)ppVar27);
      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);
    }
LAB_0002c3d4:
    pcVar35 = pcStack_458;
    if (pvStack_40c == (void *)*piVar28) {
      return;
    }
    (**(code **)(pcStack_458 + -0x7b6c))();
    ppVar13 = ppVar21;
    unaff_s2 = ppVar30;
  }
  pcVar34 = *(code **)(pcVar35 + -0x7ad4);
  pcVar36 = png_handle_sRGB;
  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);
  (*pcVar34)();
  pcVar35 = pcVar34 + 0x2ea14;
  ppVar21 = *(png_structrp *)(pcVar34 + 0x26ee0);
  pvStack_47c = ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;
  pcStack_488 = pcVar35;
  ppStack_478 = ppVar13;
  piStack_474 = piVar28;
  ppStack_470 = unaff_s2;
  pcStack_46c = pcVar36;
  if ((ppVar32->mode & 1) == 0) {
    info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4);
    (**(code **)(pcVar34 + 0x26f40))();
    ppVar5 = ppVar32;
  }
  else {
    ppVar5 = ppVar32;
    if ((ppVar32->mode & 6) == 0) {
      if (ppVar27 == (png_structrp)&DAT_00000001) {
        png_crc_read(ppVar32,&bStack_47d,1);
        info_ptr_00 = (png_structrp)0x0;
        iVar20 = png_crc_finish(ppVar32,0);
        if (iVar20 == 0) {
          uVar1 = (ppVar32->colorspace).flags;
          if (-1 < (short)uVar1) {
            if ((uVar1 & 4) == 0) {
              ppVar27 = (png_structrp)(uint)bStack_47d;
              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);
              ppVar5 = ppVar32;
              info_ptr_00 = ppVar30;
              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);
            }
            else {
              (ppVar32->colorspace).flags = uVar1 | 0x8000;
              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);
              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);
              ppVar5 = ppVar32;
              (**(code **)(pcStack_488 + -0x7b54))();
            }
          }
        }
      }
      else {
        png_crc_finish(ppVar32,(png_uint_32)ppVar27);
        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);
        (**(code **)(pcStack_488 + -0x7b54))();
      }
    }
    else {
      png_crc_finish(ppVar32,(png_uint_32)ppVar27);
      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);
      (**(code **)(pcStack_488 + -0x7b54))();
    }
    ppVar13 = ppVar32;
    unaff_s2 = ppVar30;
    pcVar35 = pcStack_488;
    if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {
      return;
    }
  }
  pcVar36 = *(code **)(pcVar35 + -0x7b6c);
  pcVar37 = png_handle_iCCP;
  (*pcVar36)();
  pcVar34 = pcVar36 + 0x2e880;
  piVar28 = *(int **)(pcVar36 + 0x26d4c);
  ppVar30 = (png_structrp)(ppVar5->mode & 1);
  iStack_4c4 = *piVar28;
  ppVar32 = unaff_s2;
  pcVar35 = pcVar34;
  ppStack_4c0 = ppVar13;
  ppStack_4bc = ppVar21;
  ppStack_4b8 = unaff_s2;
  ppStack_4b4 = ppVar22;
  ppStack_4b0 = (png_structrp)info_ptr;
  pbStack_4ac = (byte *)length;
  ppStack_4a8 = unaff_s6;
  ppStack_4a4 = unaff_s7;
  ppStack_4a0 = unaff_s8;
  pcStack_49c = pcVar37;
  appStack_490[0] = ppVar27;
  if (ppVar30 == (png_structrp)0x0) goto LAB_0002cd34;
  if ((ppVar5->mode & 6) != 0) {
    png_crc_finish(ppVar5,(png_uint_32)ppVar27);
    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c);
    goto LAB_0002c8bc;
  }
  if (ppVar27 < (png_structrp)0xe) {
    png_crc_finish(ppVar5,(png_uint_32)ppVar27);
    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c);
    goto LAB_0002c8bc;
  }
  uVar1 = (ppVar5->colorspace).flags;
  if ((short)uVar1 < 0) {
    png_crc_finish(ppVar5,(png_uint_32)ppVar27);
    goto LAB_0002c8bc;
  }
  if ((uVar1 & 4) == 0) {
    ppVar13 = (png_structrp)0x51;
    if (ppVar27 < (png_structrp)0x51) {
      ppVar13 = ppVar27;
    }
    ppVar32 = &pStack_99c;
    ppVar27 = ppVar13;
    png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13);
    appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13);
    if (appStack_490[0] < (png_structrp)0xb) {
      FUN_0002c94c(ppVar5);
      return;
    }
    pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);
    if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {
LAB_0002c974:
      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);
    }
    else {
      do {
        ppVar21 = ppVar30;
        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);
        ppVar30 = ppVar21;
        if (*pcVar14 == '\0') goto LAB_0002c86c;
        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);
        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;
        pcVar14 = pcVar14 + 1;
      } while (ppVar13 != ppVar30);
      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);
LAB_0002c86c:
      if ((unaff_s6 < ppVar13) &&
         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +
                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {
        iVar20 = png_inflate_claim(ppVar5,0x69434350);
        if (iVar20 != 0) {
          ppVar32 = (png_structrp)(ppVar5->zstream).msg;
          ppVar27 = appStack_490[0];
          goto LAB_0002ca50;
        }
        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);
        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);
        p_Var2 = ppVar30->jmp_buf_local;
        pVar24 = ppVar5->zowner;
        pVar19 = ppVar5->chunk_name;
        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));
        pppStack_9a0 = (png_byte **)0x84;
        (ppVar5->zstream).next_in =
             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;
        (ppVar5->zstream).avail_in = (uInt)ppVar30;
        if (pVar24 == pVar19) {
          iVar20 = *(int *)(pcVar34 + -0x7e0c);
          (ppVar5->zstream).next_out = ppVar23;
          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;
          (ppVar5->zstream).avail_out = 0;
          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,
                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34
                          );
          if (pppStack_9a0 == (png_byte **)0x0) {
            ppStack_9b4 = &ppVar5->colorspace;
            ppStack_9c0 = (png_structrp)
                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *
                           0x1000000 +
                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000
                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +
                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);
            ppVar27 = ppVar32;
            iVar15 = png_icc_check_length
                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0
                               );
            if ((iVar15 == 0) ||
               (ppVar27 = ppVar32,
               iVar15 = png_icc_check_header
                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,
                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),
               iVar15 == 0)) {
LAB_0002caf4:
              ppVar5->zowner = 0;
              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);
              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;
              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);
              unaff_s2 = ppVar32;
              goto LAB_0002c8bc;
            }
            ppVar27 = (png_structrp)&DAT_00000002;
            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);
            if (ppVar30 == (png_structrp)0x0) {
              iVar20 = *(int *)(pcVar34 + -0x7fd4);
              ppVar5->zowner = 0;
              ppVar32 = (png_structrp)(iVar20 + -0x184);
            }
            else {
              ppVar27 = ppVar30;
              do {
                ppVar31 = ppVar23 + 0x10;
                pvVar26 = *(void **)(ppVar23 + 4);
                iVar25 = *(int *)(ppVar23 + 8);
                iVar15 = *(int *)(ppVar23 + 0xc);
                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;
                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;
                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;
                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;
                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);
                ppVar23 = ppVar31;
              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);
              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;
              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000
                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000
                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +
                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;
              pppVar16 = (png_byte **)(iVar15 * 0xc);
              pppStack_9a0 = pppVar16;
              if (ppVar5->zowner == ppVar5->chunk_name) {
                (ppVar5->zstream).next_out =
                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);
                (ppVar5->zstream).avail_out = 0;
                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);
              }
              else {
                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);
              }
              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;
              ppVar27 = ppVar32;
              iVar25 = png_icc_check_tag_table
                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,
                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);
              if (iVar25 == 0) goto LAB_0002caf4;
              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);
              if (ppVar5->zowner != ppVar5->chunk_name) {
                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);
                FUN_0002ccd8();
                return;
              }
              (ppVar5->zstream).next_out =
                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);
              (ppVar5->zstream).avail_out = 0;
              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);
              ppVar27 = appStack_490[0];
              pcVar35 = pcVar34;
              if (appStack_490[0] == (png_structrp)0x0) {
                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;
                goto LAB_0002ce38;
              }
              pppVar16 = pppStack_9a0;
              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;
              iVar20 = *(int *)(pcVar34 + -0x7fd4);
              ppVar5->zowner = 0;
              ppVar32 = (png_structrp)(iVar20 + 0x674);
            }
            goto LAB_0002c900;
          }
        }
        else {
          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);
        }
LAB_0002ca44:
        ppVar32 = (png_structrp)(ppVar5->zstream).msg;
        ppVar5->zowner = 0;
        ppVar27 = appStack_490[0];
        goto LAB_0002ca50;
      }
      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);
    }
  }
  else {
    ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);
  }
LAB_0002c900:
  png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);
  (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;
  png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);
LAB_0002c934:
  pcVar35 = *(code **)(pcVar34 + -0x7b54);
  do {
    (*pcVar35)(ppVar5,ppVar32);
    unaff_s2 = ppVar32;
LAB_0002c8bc:
    do {
      while( true ) {
        if (iStack_4c4 == *piVar28) {
          return;
        }
        pcVar35 = pcVar34;
        (**(code **)(pcVar34 + -0x7b6c))();
        ppVar21 = info_ptr_00;
        ppVar32 = unaff_s2;
        unaff_s8 = ppVar5;
LAB_0002cd34:
        ppVar5 = unaff_s8;
        info_ptr_00 = ppVar21;
        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();
LAB_0002cd44:
        if (pppVar16 != (png_byte **)0x0) break;
        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);
        pcVar34 = pcVar35;
LAB_0002cd68:
        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);
        ppVar27 = ppVar30;
        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);
        if (info_ptr_00 != (png_structrp)0x0) {
          ppVar27 = (png_structrp)0x10;
          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);
          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);
          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;
          if (pvVar17 == (png_voidp)0x0) {
            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;
            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);
            uVar1 = (ppVar5->colorspace).flags;
            ppVar5->zowner = 0;
            (ppVar5->colorspace).flags = uVar1 | 0x8000;
            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);
            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);
            goto LAB_0002c934;
          }
          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);
          pa_Var18 = info_ptr_00->jmp_buf_ptr;
          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];
          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;
          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;
          ppVar5->read_buffer = (png_bytep)0x0;
          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);
          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;
          ppVar27 = ppStack_9c0;
          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);
        }
        ppVar5->zowner = 0;
        unaff_s2 = ppVar32;
      }
LAB_0002ce38:
      ppVar32 = (png_structrp)(ppVar5->zstream).msg;
      ppVar5->zowner = 0;
      pcVar34 = pcVar35;
LAB_0002ca50:
      png_crc_finish(ppVar5,(png_uint_32)ppVar27);
      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;
      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);
      unaff_s2 = ppVar32;
    } while (ppVar32 == (png_structrp)0x0);
    pcVar35 = *(code **)(pcVar34 + -0x7b54);
  } while( true );
}



void FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)

{
  ushort uVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  byte *pbVar11;
  undefined4 uVar12;
  byte *pbVar13;
  undefined1 *puVar14;
  int iVar15;
  byte *pbVar16;
  byte *pbVar17;
  undefined4 uVar18;
  byte *pbVar19;
  undefined4 uVar20;
  byte *unaff_s0;
  byte *unaff_s1;
  int *piVar21;
  int *piVar22;
  byte *unaff_s2;
  byte *pbVar23;
  byte *pbVar24;
  undefined *puVar25;
  byte *pbVar26;
  byte *unaff_s5;
  byte *unaff_s6;
  byte *unaff_s7;
  undefined *puVar27;
  code *pcVar28;
  byte *unaff_s8;
  code *pcVar29;
  code *pcVar30;
  byte *pbStack_9c0;
  byte *pbStack_9b4;
  byte *pbStack_9a0;
  byte abStack_99c [84];
  byte bStack_948;
  byte bStack_947;
  byte bStack_946;
  byte bStack_945;
  undefined4 auStack_944 [31];
  byte bStack_8c8;
  byte bStack_8c7;
  byte bStack_8c6;
  byte bStack_8c5;
  undefined1 auStack_8c4 [1024];
  int iStack_4c4;
  byte *pbStack_4c0;
  byte *pbStack_4bc;
  byte *pbStack_4b8;
  undefined1 *puStack_4b4;
  byte *pbStack_4b0;
  byte *pbStack_4ac;
  byte *pbStack_4a8;
  byte *pbStack_4a4;
  byte *pbStack_4a0;
  code *pcStack_49c;
  byte *apbStack_490 [2];
  code *pcStack_488;
  byte bStack_47d;
  int iStack_47c;
  byte *pbStack_478;
  int *piStack_474;
  byte *pbStack_470;
  code *pcStack_46c;
  code *pcStack_458;
  int iStack_44c;
  int iStack_448;
  int iStack_444;
  int iStack_440;
  int iStack_43c;
  int iStack_438;
  int iStack_434;
  int iStack_430;
  undefined1 auStack_42c [4];
  undefined1 auStack_428 [4];
  undefined1 auStack_424 [4];
  undefined1 auStack_420 [4];
  undefined1 auStack_41c [4];
  undefined1 auStack_418 [4];
  undefined1 auStack_414 [4];
  undefined1 auStack_410 [4];
  int iStack_40c;
  byte *pbStack_404;
  int *piStack_400;
  byte *pbStack_3fc;
  undefined1 *puStack_3f8;
  code *pcStack_3f4;
  code *pcStack_3e0;
  byte abStack_3d8 [4];
  int iStack_3d4;
  byte *pbStack_3cc;
  int *piStack_3c8;
  byte *pbStack_3c4;
  undefined *puStack_3c0;
  byte *pbStack_3bc;
  byte *pbStack_3b8;
  code *pcStack_3b4;
  byte *pbStack_3a8;
  code *pcStack_3a0;
  undefined auStack_398 [4];
  int iStack_394;
  byte *pbStack_38c;
  byte *pbStack_388;
  byte *pbStack_384;
  undefined *puStack_380;
  code *pcStack_37c;
  undefined *puStack_368;
  byte *pbStack_35c;
  byte *pbStack_358;
  code *pcStack_354;
  int local_334;
  byte local_330 [768];
  byte local_30;
  byte local_2f;
  byte local_2e;
  int local_2c;
  
  puVar25 = PTR___stack_chk_guard_000534bc;
  uVar3 = *(uint *)(param_1 + 0x124);
  local_2c = *(int *)PTR___stack_chk_guard_000534bc;
  pbVar19 = param_3;
  if ((uVar3 & 1) == 0) {
LAB_0002bebc:
    param_3 = unaff_s5;
    (*(code *)PTR_png_chunk_error_0005351c)();
  }
  else {
    pbVar24 = param_1;
    if ((uVar3 & 2) != 0) {
LAB_0002beac:
      (*(code *)PTR_png_chunk_error_0005351c)();
      param_1 = pbVar24;
      goto LAB_0002bebc;
    }
    unaff_s1 = param_1;
    if ((uVar3 & 4) != 0) {
      FUN_0002b068(param_1,param_3);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);
LAB_0002bd88:
      if (local_2c == *(int *)puVar25) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_00053484)();
      unaff_s5 = param_3;
      goto LAB_0002beac;
    }
    *(uint *)(param_1 + 0x124) = uVar3 | 2;
    if ((param_1[0x1ff] & 2) == 0) {
      FUN_0002b068(param_1,param_3);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);
      goto LAB_0002bd88;
    }
    unaff_s2 = (byte *)0xaaaa0000;
    if ((param_3 < &DAT_00000301) &&
       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {
      local_334 = (int)unaff_s2 << 1;
      if (param_1[0x1ff] == 3) {
        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));
        if ((int)pbVar19 < (int)unaff_s2) {
          unaff_s2 = pbVar19;
        }
        local_334 = (int)unaff_s2 << 1;
        if (0 < (int)unaff_s2) goto LAB_0002bc70;
      }
      else if (unaff_s2 != (byte *)0x0) {
LAB_0002bc70:
        unaff_s7 = &local_30;
        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);
        pbVar19 = local_330;
        do {
          FUN_0002aef8(param_1,unaff_s7,3);
          unaff_s0 = pbVar19 + 3;
          *pbVar19 = local_30;
          pbVar19[1] = local_2f;
          pbVar19[2] = local_2e;
          pbVar19 = unaff_s0;
        } while (unaff_s6 != unaff_s0);
      }
      unaff_s8 = local_330;
      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));
      pbVar19 = unaff_s8;
      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);
      if (*(short *)(param_1 + 0x1f8) == 0) {
        if (param_2 != (byte *)0x0) {
          uVar3 = *(uint *)(param_2 + 8);
          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;
          goto LAB_0002bd24;
        }
      }
      else {
        param_1[0x1f8] = 0;
        param_1[0x1f9] = 0;
        if (param_2 == (byte *)0x0) {
          pbVar24 = param_1;
          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);
        }
        else {
LAB_0002bd04:
          puVar2 = PTR_png_chunk_benign_error_0005349c;
          puVar27 = PTR_s_nt_0005301c;
          param_2[0x16] = 0;
          param_2[0x17] = 0;
          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);
          uVar3 = *(uint *)(param_2 + 8);
LAB_0002bd24:
          if ((uVar3 & 0x40) != 0) {
            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);
            uVar3 = *(uint *)(param_2 + 8);
          }
          pbVar24 = param_1;
          if ((uVar3 & 0x20) != 0) {
            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);
          }
        }
      }
      goto LAB_0002bd88;
    }
    FUN_0002b068(param_1,param_3);
    if (param_1[0x1ff] != 3) {
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);
      goto LAB_0002bd88;
    }
  }
  pcVar29 = FUN_0002bedc;
  puVar27 = PTR_png_chunk_error_0005351c;
  (*(code *)PTR_png_chunk_error_0005351c)();
  puStack_368 = puVar27 + 0x2f114;
  pbStack_35c = unaff_s0;
  pbStack_358 = unaff_s1;
  pcStack_354 = pcVar29;
  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {
    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;
    FUN_0002b068();
    if (pbVar19 != (byte *)0x0) {
      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);
      return;
    }
    return;
  }
  pcVar28 = *(code **)(puVar27 + 0x27640);
  pcVar30 = FUN_0002bf78;
  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2f078;
  piVar21 = *(int **)(pcVar28 + 0x27544);
  puStack_380 = puVar25;
  iStack_394 = *piVar21;
  pbVar24 = param_1;
  pbStack_3cc = unaff_s0;
  pcStack_3a0 = pcVar29;
  pbStack_38c = unaff_s0;
  pbStack_388 = unaff_s1;
  pbStack_384 = unaff_s2;
  pcStack_37c = pcVar30;
  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {
    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {
      if (pbVar19 == &DAT_00000004) {
        puVar25 = auStack_398;
        FUN_0002aef8();
        iVar15 = FUN_0002b068(param_1,0);
        if (iVar15 == 0) {
          pbVar19 = (byte *)FUN_0002acb0(puVar25);
          FUN_00018078(param_1,param_1 + 0x398);
          pbVar24 = param_1;
          FUN_00015834(param_1,pbVar13);
        }
      }
      else {
        FUN_0002b068();
        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);
      }
    }
    else {
      FUN_0002b068();
      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);
    }
    pcVar29 = pcStack_3a0;
    if (iStack_394 == *piVar21) {
      return;
    }
    (**(code **)(pcStack_3a0 + -0x7b6c))();
    pbStack_3cc = param_1;
    unaff_s2 = pbVar13;
  }
  pcVar28 = *(code **)(pcVar29 + -0x7ad4);
  pcVar30 = FUN_0002c0dc;
  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2ef14;
  piVar22 = *(int **)(pcVar28 + 0x273e0);
  iStack_3d4 = *piVar22;
  pbVar13 = pbVar24;
  pbStack_404 = pbStack_3cc;
  pcStack_3e0 = pcVar29;
  piStack_3c8 = piVar21;
  pbStack_3c4 = unaff_s2;
  puStack_3c0 = puVar25;
  pbStack_3bc = param_2;
  pbStack_3b8 = param_3;
  pcStack_3b4 = pcVar30;
  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {
    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {
      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {
        param_2 = (byte *)0x3;
        if (pbVar24[0x1ff] == 3) {
          pbVar23 = (byte *)0x8;
          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;
LAB_0002c268:
          iVar15 = *(int *)(pcVar28 + 0x26f40);
        }
        else {
          param_2 = (byte *)(uint)pbVar24[0x203];
          pbVar23 = (byte *)(uint)pbVar24[0x200];
          if (param_2 != pbVar19) goto LAB_0002c268;
LAB_0002c168:
          iVar15 = *(int *)(pcVar28 + 0x26f40);
          if (param_2 < &DAT_00000005) {
            abStack_3d8[0] = (byte)pbVar23;
            pbVar19 = param_2;
            abStack_3d8[1] = abStack_3d8[0];
            abStack_3d8[2] = abStack_3d8[0];
            abStack_3d8[3] = abStack_3d8[0];
            FUN_0002aef8(pbVar24,abStack_3d8);
            iVar15 = FUN_0002b068(pbVar24,0);
            unaff_s2 = pbVar23;
            param_3 = abStack_3d8;
            if (iVar15 == 0) {
              if (param_2 == (byte *)0x0) {
LAB_0002c1f4:
                if ((pbVar24[0x1ff] & 2) == 0) {
                  pbVar24[599] = abStack_3d8[0];
                  pbVar24[0x254] = abStack_3d8[0];
                  pbVar24[0x255] = abStack_3d8[0];
                  pbVar24[0x256] = abStack_3d8[0];
                  pbVar24[600] = abStack_3d8[1];
                }
                else {
                  pbVar24[0x254] = abStack_3d8[0];
                  pbVar24[0x255] = abStack_3d8[1];
                  pbVar24[0x256] = abStack_3d8[2];
                  pbVar24[600] = abStack_3d8[3];
                }
                pbVar19 = pbVar24 + 0x254;
                pbVar13 = pbVar24;
                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);
              }
              else {
                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&
                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {
                  param_2 = abStack_3d8 + (int)param_2;
                  do {
                    pbVar13 = pbVar13 + 1;
                    if (param_2 == pbVar13) goto LAB_0002c1f4;
                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&
                          ((byte *)(uint)*pbVar13 <= pbVar23));
                }
                pbVar13 = pbVar24;
                (**(code **)(pcStack_3e0 + -0x7b54))
                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);
              }
            }
            goto LAB_0002c230;
          }
        }
        pbStack_3a8 = pbVar19;
        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);
        pbVar19 = pbStack_3a8;
        FUN_0002b068(pbVar24,pbStack_3a8);
        unaff_s2 = pbVar23;
      }
      else {
        FUN_0002b068();
        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);
      }
    }
    else {
      FUN_0002b068();
      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);
    }
LAB_0002c230:
    pcVar29 = pcStack_3e0;
    if (iStack_3d4 == *piVar22) {
      return;
    }
    (**(code **)(pcStack_3e0 + -0x7b6c))();
    pbStack_404 = pbVar24;
  }
  pcVar28 = *(code **)(pcVar29 + -0x7ad4);
  pcVar30 = FUN_0002c348;
  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2eca8;
  piVar21 = *(int **)(pcVar28 + 0x27174);
  iStack_40c = *piVar21;
  pbVar24 = pbVar13;
  pbVar23 = pbStack_404;
  pcStack_458 = pcVar29;
  piStack_400 = piVar22;
  pbStack_3fc = unaff_s2;
  puStack_3f8 = puVar14;
  pcStack_3f4 = pcVar30;
  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {
    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {
      if (pbVar19 == (byte *)0x20) {
        FUN_0002aef8();
        iVar15 = FUN_0002b068(pbVar13,0);
        puVar14 = auStack_42c;
        if (iVar15 == 0) {
          iVar15 = FUN_0002acb0(auStack_42c);
          iStack_434 = iVar15;
          iVar8 = FUN_0002acb0(auStack_428);
          iStack_430 = iVar8;
          iVar9 = FUN_0002acb0(auStack_424);
          iStack_44c = iVar9;
          iVar4 = FUN_0002acb0(auStack_420);
          iStack_448 = iVar4;
          iVar5 = FUN_0002acb0(auStack_41c);
          iStack_444 = iVar5;
          iVar6 = FUN_0002acb0(auStack_418);
          iStack_440 = iVar6;
          iVar7 = FUN_0002acb0(auStack_414);
          iStack_43c = iVar7;
          iStack_438 = FUN_0002acb0(auStack_410);
          if (iVar15 == -1) {
            iVar15 = *(int *)(pcStack_458 + -0x7fd4);
          }
          else {
            iVar15 = *(int *)(pcStack_458 + -0x7fd4);
            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&
                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {
              uVar1 = *(ushort *)(pbVar13 + 0x3e2);
              pbVar24 = pbVar13;
              if (-1 < (short)uVar1) {
                if ((uVar1 & 0x10) == 0) {
                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;
                  pbVar19 = (byte *)&iStack_44c;
                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);
                  FUN_00015834(pbVar13,pbVar16);
                }
                else {
                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;
                  FUN_00015834(pbVar13,pbVar16);
                  (**(code **)(pcStack_458 + -0x7b54))
                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);
                }
              }
              goto LAB_0002c3d4;
            }
          }
          pbVar24 = pbVar13;
          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);
        }
      }
      else {
        FUN_0002b068();
        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);
      }
    }
    else {
      FUN_0002b068();
      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);
    }
LAB_0002c3d4:
    pcVar29 = pcStack_458;
    if (iStack_40c == *piVar21) {
      return;
    }
    (**(code **)(pcStack_458 + -0x7b6c))();
    pbVar23 = pbVar13;
    unaff_s2 = pbVar16;
  }
  pcVar28 = *(code **)(pcVar29 + -0x7ad4);
  pcVar30 = FUN_0002c5dc;
  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2ea14;
  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);
  iStack_47c = *(int *)pbVar13;
  pcStack_488 = pcVar29;
  pbStack_478 = pbVar23;
  piStack_474 = piVar21;
  pbStack_470 = unaff_s2;
  pcStack_46c = pcVar30;
  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {
    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);
    (**(code **)(pcVar28 + 0x26f40))();
    pbVar11 = pbVar24;
  }
  else {
    pbVar11 = pbVar24;
    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {
      if (pbVar19 == (byte *)0x1) {
        FUN_0002aef8();
        pbVar17 = (byte *)0x0;
        iVar15 = FUN_0002b068();
        if (iVar15 == 0) {
          uVar1 = *(ushort *)(pbVar24 + 0x3e2);
          if (-1 < (short)uVar1) {
            if ((uVar1 & 4) == 0) {
              pbVar19 = (byte *)(uint)bStack_47d;
              FUN_00018198(pbVar24,pbVar24 + 0x398);
              pbVar11 = pbVar24;
              pbVar17 = pbVar16;
              FUN_00015834();
            }
            else {
              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;
              FUN_00015834(pbVar24,pbVar16);
              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);
              pbVar11 = pbVar24;
              (**(code **)(pcStack_488 + -0x7b54))();
            }
          }
        }
      }
      else {
        FUN_0002b068();
        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);
        (**(code **)(pcStack_488 + -0x7b54))();
      }
    }
    else {
      FUN_0002b068();
      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);
      (**(code **)(pcStack_488 + -0x7b54))();
    }
    pbVar23 = pbVar24;
    unaff_s2 = pbVar16;
    pcVar29 = pcStack_488;
    if (iStack_47c == *(int *)pbVar13) {
      return;
    }
  }
  pcVar29 = *(code **)(pcVar29 + -0x7b6c);
  pcVar28 = FUN_0002c770;
  (*pcVar29)();
  piVar21 = *(int **)(pcVar29 + 0x26d4c);
  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);
  iStack_4c4 = *piVar21;
  pbVar24 = unaff_s2;
  pbStack_4c0 = pbVar23;
  pbStack_4bc = pbVar13;
  pbStack_4b8 = unaff_s2;
  puStack_4b4 = puVar14;
  pbStack_4b0 = param_2;
  pbStack_4ac = param_3;
  pbStack_4a8 = unaff_s6;
  pbStack_4a4 = unaff_s7;
  pbStack_4a0 = unaff_s8;
  pcStack_49c = pcVar28;
  apbStack_490[0] = pbVar19;
  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;
  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {
    if ((byte *)0xd < pbVar19) {
      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {
        FUN_0002b068();
        goto LAB_0002c8bc;
      }
      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {
        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);
LAB_0002c900:
        FUN_0002b068(pbVar11,apbStack_490[0]);
        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
        FUN_00015834(pbVar11,pbVar17);
        goto LAB_0002c934;
      }
      pbVar13 = (byte *)0x51;
      if (pbVar19 < (byte *)0x51) {
        pbVar13 = pbVar19;
      }
      pbVar24 = abStack_99c;
      pbVar19 = pbVar13;
      FUN_0002aef8();
      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;
      if ((byte *)0xa < apbStack_490[0]) {
        pbVar23 = abStack_99c;
        if (abStack_99c[0] == 0) {
LAB_0002c974:
          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);
        }
        else {
          do {
            pbVar26 = pbVar16;
            pbVar23 = pbVar23 + 1;
            unaff_s6 = pbVar26 + 1;
            pbVar16 = pbVar26;
            if (*pbVar23 == 0) goto LAB_0002c86c;
            pbVar16 = pbVar26 + 1;
            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;
          } while (pbVar13 != pbVar16);
          unaff_s6 = pbVar26 + 2;
LAB_0002c86c:
          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {
            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);
            if (iVar15 != 0) {
              pbVar24 = *(byte **)(pbVar11 + 0x14c);
              pbVar19 = apbStack_490[0];
              goto LAB_0002ca50;
            }
            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);
            pbVar19 = pbVar16 + 2;
            pbVar16 = pbVar13 + (-2 - (int)pbVar16);
            pbStack_9a0 = (byte *)0x84;
            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;
            *(byte **)(pbVar11 + 0x138) = pbVar16;
            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {
              iVar15 = *(int *)(pcVar29 + 0x26a74);
              *(byte **)(pbVar11 + 0x140) = &bStack_948;
              pbVar11[0x144] = 0;
              pbVar11[0x145] = 0;
              pbVar11[0x146] = 0;
              pbVar11[0x147] = 0;
              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);
              if (pbStack_9a0 == (byte *)0x0) {
                pbStack_9b4 = pbVar11 + 0x398;
                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +
                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);
                pbVar19 = pbVar24;
                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);
                if ((iVar8 != 0) &&
                   (pbVar19 = pbVar24,
                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,
                                        pbVar11[0x1ff]), iVar8 != 0)) {
                  pbVar19 = (byte *)0x2;
                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);
                  if (pbVar16 == (byte *)0x0) {
                    iVar15 = *(int *)(pcVar29 + 0x268ac);
                    pbVar11[0x130] = 0;
                    pbVar11[0x131] = 0;
                    pbVar11[0x132] = 0;
                    pbVar11[0x133] = 0;
                    pbVar24 = (byte *)(iVar15 + -0x184);
                    goto LAB_0002c900;
                  }
                  pbVar19 = pbVar16;
                  pbVar13 = &bStack_948;
                  do {
                    pbVar23 = pbVar13 + 0x10;
                    uVar20 = *(undefined4 *)(pbVar13 + 4);
                    uVar18 = *(undefined4 *)(pbVar13 + 8);
                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);
                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;
                    *(undefined4 *)(pbVar19 + 4) = uVar20;
                    *(undefined4 *)(pbVar19 + 8) = uVar18;
                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;
                    pbVar19 = pbVar19 + 0x10;
                    pbVar13 = pbVar23;
                  } while (pbVar23 != &bStack_8c8);
                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;
                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +
                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;
                  pbVar13 = (byte *)(iVar8 * 0xc);
                  pbStack_9a0 = pbVar13;
                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {
                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;
                    pbVar11[0x144] = 0;
                    pbVar11[0x145] = 0;
                    pbVar11[0x146] = 0;
                    pbVar11[0x147] = 0;
                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);
                  }
                  else {
                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;
                  }
                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;
                  pbVar19 = pbVar24;
                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);
                  if (iVar9 != 0) {
                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;
                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {
                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);
                      pbVar11[0x144] = 0;
                      pbVar11[0x145] = 0;
                      pbVar11[0x146] = 0;
                      pbVar11[0x147] = 0;
                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)
                      ;
                    }
                    else {
                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;
                    }
                    pbVar19 = apbStack_490[0];
                    if (apbStack_490[0] == (byte *)0x0) {
                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;
                      goto LAB_0002ce38;
                    }
                    pbVar13 = pbStack_9a0;
                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;
                    iVar15 = *(int *)(pcVar29 + 0x268ac);
                    pbVar11[0x130] = 0;
                    pbVar11[0x131] = 0;
                    pbVar11[0x132] = 0;
                    pbVar11[0x133] = 0;
                    pbVar24 = (byte *)(iVar15 + 0x674);
                    goto LAB_0002c900;
                  }
                }
                pbVar11[0x130] = 0;
                pbVar11[0x131] = 0;
                pbVar11[0x132] = 0;
                pbVar11[0x133] = 0;
                FUN_0002b068(pbVar11,apbStack_490[0]);
                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
                FUN_00015834(pbVar11,pbVar17);
                unaff_s2 = pbVar24;
                goto LAB_0002c8bc;
              }
            }
            else {
              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;
            }
LAB_0002ca44:
            pbVar24 = *(byte **)(pbVar11 + 0x14c);
            pbVar11[0x130] = 0;
            pbVar11[0x131] = 0;
            pbVar11[0x132] = 0;
            pbVar11[0x133] = 0;
            pbVar19 = apbStack_490[0];
            goto LAB_0002ca50;
          }
          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);
        }
        goto LAB_0002c900;
      }
    }
    FUN_0002b068();
    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);
    unaff_s2 = pbVar24;
  }
  else {
    FUN_0002b068();
    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);
  }
LAB_0002c8bc:
  while( true ) {
    if (iStack_4c4 == *piVar21) {
      return;
    }
    (**(code **)(pcVar29 + 0x26d14))();
    pbVar13 = pbVar17;
    pbVar24 = unaff_s2;
    unaff_s8 = pbVar11;
LAB_0002cd34:
    pbVar11 = unaff_s8;
    pbVar17 = pbVar13;
    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();
LAB_0002cd44:
    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;
    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);
LAB_0002cd68:
    FUN_0002b068(pbVar11,apbStack_490[0]);
    pbVar19 = pbVar16;
    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));
    if (pbVar17 != (byte *)0x0) break;
LAB_0002ce24:
    pbVar11[0x130] = 0;
    pbVar11[0x131] = 0;
    pbVar11[0x132] = 0;
    pbVar11[0x133] = 0;
    unaff_s2 = pbVar24;
  }
  pbVar19 = (byte *)0x10;
  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);
  iVar15 = FUN_0001c240(pbVar11,unaff_s6);
  *(int *)(pbVar17 + 0x74) = iVar15;
  if (iVar15 != 0) {
    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);
    uVar10 = *(uint *)(pbVar17 + 0xf4);
    uVar3 = *(uint *)(pbVar17 + 8);
    *(byte **)(pbVar17 + 0x78) = pbVar16;
    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;
    pbVar11[0x374] = 0;
    pbVar11[0x375] = 0;
    pbVar11[0x376] = 0;
    pbVar11[0x377] = 0;
    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;
    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;
    pbVar19 = pbStack_9c0;
    FUN_00015834(pbVar11,pbVar17);
    goto LAB_0002ce24;
  }
  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
  FUN_00015834(pbVar11,pbVar17);
  pbVar11[0x130] = 0;
  pbVar11[0x131] = 0;
  pbVar11[0x132] = 0;
  pbVar11[0x133] = 0;
  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
  FUN_00015834(pbVar11,pbVar17);
  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);
LAB_0002c934:
  pcVar28 = *(code **)(pcVar29 + 0x26d2c);
  goto LAB_0002c938;
LAB_0002ce38:
  pbVar24 = *(byte **)(pbVar11 + 0x14c);
  pbVar11[0x130] = 0;
  pbVar11[0x131] = 0;
  pbVar11[0x132] = 0;
  pbVar11[0x133] = 0;
LAB_0002ca50:
  FUN_0002b068(pbVar11,pbVar19);
  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
  FUN_00015834(pbVar11,pbVar17);
  unaff_s2 = pbVar24;
  if (pbVar24 != (byte *)0x0) {
    pcVar28 = *(code **)(pcVar29 + 0x26d2c);
LAB_0002c938:
    (*pcVar28)(pbVar11,pbVar24);
    unaff_s2 = pbVar24;
  }
  goto LAB_0002c8bc;
}


lui gp,0x3
addiu gp,gp,-0xbb8
addu gp,gp,t9
addiu sp,sp,-0x350
lw v0,0x124(a0)
sw s3,0x334(sp)
andi v1,v0,0x1
sw s4,0x338(sp)
or s4,a1,zero
lw s3,-0x7b34(gp)
sw gp,0x10(sp)
sw ra,0x34c(sp)
sw s8,0x348(sp)
sw s7,0x344(sp)
sw s6,0x340(sp)
sw s5,0x33c(sp)
sw s2,0x330(sp)
sw s1,0x32c(sp)
sw s0,0x328(sp)
lw a1,0x0(s3)
sw a1,0x324(sp)
beq v1,zero,0x0002bebc
_andi v1,v0,0x2
bne v1,zero,0x0002beac
_andi v1,v0,0x4
or s1,a0,zero
bne v1,zero,0x0002bdc4
_or s5,a2,zero
lbu v1,0x1ff(a0)
ori v0,v0,0x2
sw v0,0x124(a0)
andi v0,v1,0x2
beq v0,zero,0x0002be3c
_sltiu v0,a2,0x301
beq v0,zero,0x0002bd50
_lui s2,0xaaaa
ori s2,s2,0xaaab
multu a2,s2
mfhi s2
srl s2,s2,0x1
sll v0,s2,0x1
addu v0,v0,s2
bne a2,v0,0x0002bd54
_lw t9,-0x7eac(gp)
li v0,0x3
beq v1,v0,0x0002be10
_sll v0,s2,0x1
addiu s8,sp,0x20
blez s2,0x0002bcb8
_sw v0,0x1c(sp)
addu s6,v0,s2
addiu s7,sp,0x320
addu s6,s8,s6
or s0,s8,zero
lw t9,-0x7f50(gp)
li a2,0x3
or a1,s7,zero
bal 0x0002aef8
_or a0,s1,zero
addiu s0,s0,0x3
lbu v0,0x320(sp)
lw gp,0x10(sp)
sb v0,-0x3(s0)
lbu v0,0x321(sp)
sb v0,-0x2(s0)
lbu v0,0x322(sp)
bne s6,s0,0x0002bc80
_sb v0,-0x1(s0)
lw v0,0x1c(sp)
or a0,s1,zero
lw t9,-0x7eac(gp)
addu a1,v0,s2
bal 0x0002b068
_subu a1,s5,a1
or a3,s2,zero
lw gp,0x10(sp)
or a2,s8,zero
or a1,s4,zero
lw t9,-0x7c20(gp)
jalr t9
_or a0,s1,zero
lhu v0,0x1f8(s1)
beq v0,zero,0x0002bdf0
_lw gp,0x10(sp)
beq s4,zero,0x0002be84
_sh zero,0x1f8(s1)
lw a1,-0x7fd4(gp)
or a0,s1,zero
lw t9,-0x7b54(gp)
sh zero,0x16(s4)
jalr t9
_addiu a1,a1,0x6d0
lw gp,0x10(sp)
lw v0,0x8(s4)
andi v1,v0,0x40
bne v1,zero,0x0002be68
_or a0,s1,zero
andi v0,v0,0x20
beq v0,zero,0x0002bd88
_or a0,s1,zero
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x6f8
b 0x0002bd88
_lw gp,0x10(sp)
lw t9,-0x7eac(gp)
or a0,s1,zero
bal 0x0002b068
_or a1,s5,zero
li v0,0x3
lbu v1,0x1ff(s1)
or a0,s1,zero
beq v1,v0,0x0002becc
_lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x69c
lw gp,0x10(sp)
lw v1,0x324(sp)
lw v0,0x0(s3)
bne v1,v0,0x0002bea0
_lw ra,0x34c(sp)
lw s8,0x348(sp)
lw s7,0x344(sp)
lw s6,0x340(sp)
lw s5,0x33c(sp)
lw s4,0x338(sp)
lw s3,0x334(sp)
lw s2,0x330(sp)
lw s1,0x32c(sp)
lw s0,0x328(sp)
jr ra
_addiu sp,sp,0x350
lw t9,-0x7eac(gp)
bal 0x0002b068
_or a1,a2,zero
or a0,s1,zero
lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x68c
b 0x0002bd88
_lw gp,0x10(sp)
beq s4,zero,0x0002bd88
_nop
lw v0,0x8(s4)
andi v1,v0,0x10
beq v1,zero,0x0002bd24
_andi v1,v0,0x40
b 0x0002bd04
_lw a1,-0x7fd4(gp)
lbu v1,0x200(a0)
li v0,0x1
addiu s8,sp,0x20
sllv v0,v0,v1
slt v1,v0,s2
movn s2,v0,v1
sll v0,s2,0x1
bgtz s2,0x0002bc70
_sw v0,0x1c(sp)
b 0x0002bcbc
_lw v0,0x1c(sp)
lw t9,-0x7eac(gp)
bal 0x0002b068
_or a1,a2,zero
or a0,s1,zero
lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x6b4
b 0x0002bd88
_lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x6e4
lw gp,0x10(sp)
b 0x0002bd2c
_lw v0,0x8(s4)
lw a1,-0x7fd4(gp)
or a0,s1,zero
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x6d0
b 0x0002bd88
_lw gp,0x10(sp)
lw t9,-0x7b6c(gp)
jalr t9
_nop
lw a1,-0x7fd4(gp)
lw t9,-0x7ad4(gp)
jalr t9
_addiu a1,a1,-0x1a18
lw a1,-0x7fd4(gp)
lw t9,-0x7ad4(gp)
jalr t9
_addiu a1,a1,0x6a4
lw a1,-0x7fd4(gp)
lw t9,-0x7ad4(gp)
jalr t9
_addiu a1,a1,0x69c
(translation_unit "void FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}\n\n" (function_definition "void FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}" primitive_type (function_declarator "FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)" identifier (parameter_list "(byte *param_1,byte *param_2,byte *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "byte *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "byte *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "byte *pbStack_9c0;" type_identifier (pointer_declarator "*pbStack_9c0" * identifier) ;) (declaration "byte *pbStack_9b4;" type_identifier (pointer_declarator "*pbStack_9b4" * identifier) ;) (declaration "byte *pbStack_9a0;" type_identifier (pointer_declarator "*pbStack_9a0" * identifier) ;) (declaration "byte abStack_99c [84];" type_identifier (array_declarator "abStack_99c [84]" identifier [ number_literal ]) ;) (declaration "byte bStack_948;" type_identifier identifier ;) (declaration "byte bStack_947;" type_identifier identifier ;) (declaration "byte bStack_946;" type_identifier identifier ;) (declaration "byte bStack_945;" type_identifier identifier ;) (declaration "undefined4 auStack_944 [31];" type_identifier (array_declarator "auStack_944 [31]" identifier [ number_literal ]) ;) (declaration "byte bStack_8c8;" type_identifier identifier ;) (declaration "byte bStack_8c7;" type_identifier identifier ;) (declaration "byte bStack_8c6;" type_identifier identifier ;) (declaration "byte bStack_8c5;" type_identifier identifier ;) (declaration "undefined1 auStack_8c4 [1024];" type_identifier (array_declarator "auStack_8c4 [1024]" identifier [ number_literal ]) ;) (declaration "int iStack_4c4;" primitive_type identifier ;) (declaration "byte *pbStack_4c0;" type_identifier (pointer_declarator "*pbStack_4c0" * identifier) ;) (declaration "byte *pbStack_4bc;" type_identifier (pointer_declarator "*pbStack_4bc" * identifier) ;) (declaration "byte *pbStack_4b8;" type_identifier (pointer_declarator "*pbStack_4b8" * identifier) ;) (declaration "undefined1 *puStack_4b4;" type_identifier (pointer_declarator "*puStack_4b4" * identifier) ;) (declaration "byte *pbStack_4b0;" type_identifier (pointer_declarator "*pbStack_4b0" * identifier) ;) (declaration "byte *pbStack_4ac;" type_identifier (pointer_declarator "*pbStack_4ac" * identifier) ;) (declaration "byte *pbStack_4a8;" type_identifier (pointer_declarator "*pbStack_4a8" * identifier) ;) (declaration "byte *pbStack_4a4;" type_identifier (pointer_declarator "*pbStack_4a4" * identifier) ;) (declaration "byte *pbStack_4a0;" type_identifier (pointer_declarator "*pbStack_4a0" * identifier) ;) (declaration "code *pcStack_49c;" type_identifier (pointer_declarator "*pcStack_49c" * identifier) ;) (declaration "byte *apbStack_490 [2];" type_identifier (pointer_declarator "*apbStack_490 [2]" * (array_declarator "apbStack_490 [2]" identifier [ number_literal ])) ;) (declaration "code *pcStack_488;" type_identifier (pointer_declarator "*pcStack_488" * identifier) ;) (declaration "byte bStack_47d;" type_identifier identifier ;) (declaration "int iStack_47c;" primitive_type identifier ;) (declaration "byte *pbStack_478;" type_identifier (pointer_declarator "*pbStack_478" * identifier) ;) (declaration "int *piStack_474;" primitive_type (pointer_declarator "*piStack_474" * identifier) ;) (declaration "byte *pbStack_470;" type_identifier (pointer_declarator "*pbStack_470" * identifier) ;) (declaration "code *pcStack_46c;" type_identifier (pointer_declarator "*pcStack_46c" * identifier) ;) (declaration "code *pcStack_458;" type_identifier (pointer_declarator "*pcStack_458" * identifier) ;) (declaration "int iStack_44c;" primitive_type identifier ;) (declaration "int iStack_448;" primitive_type identifier ;) (declaration "int iStack_444;" primitive_type identifier ;) (declaration "int iStack_440;" primitive_type identifier ;) (declaration "int iStack_43c;" primitive_type identifier ;) (declaration "int iStack_438;" primitive_type identifier ;) (declaration "int iStack_434;" primitive_type identifier ;) (declaration "int iStack_430;" primitive_type identifier ;) (declaration "undefined1 auStack_42c [4];" type_identifier (array_declarator "auStack_42c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_428 [4];" type_identifier (array_declarator "auStack_428 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_424 [4];" type_identifier (array_declarator "auStack_424 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_420 [4];" type_identifier (array_declarator "auStack_420 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_41c [4];" type_identifier (array_declarator "auStack_41c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_418 [4];" type_identifier (array_declarator "auStack_418 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_414 [4];" type_identifier (array_declarator "auStack_414 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_410 [4];" type_identifier (array_declarator "auStack_410 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_40c;" primitive_type identifier ;) (declaration "byte *pbStack_404;" type_identifier (pointer_declarator "*pbStack_404" * identifier) ;) (declaration "int *piStack_400;" primitive_type (pointer_declarator "*piStack_400" * identifier) ;) (declaration "byte *pbStack_3fc;" type_identifier (pointer_declarator "*pbStack_3fc" * identifier) ;) (declaration "undefined1 *puStack_3f8;" type_identifier (pointer_declarator "*puStack_3f8" * identifier) ;) (declaration "code *pcStack_3f4;" type_identifier (pointer_declarator "*pcStack_3f4" * identifier) ;) (declaration "code *pcStack_3e0;" type_identifier (pointer_declarator "*pcStack_3e0" * identifier) ;) (declaration "byte abStack_3d8 [4];" type_identifier (array_declarator "abStack_3d8 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_3d4;" primitive_type identifier ;) (declaration "byte *pbStack_3cc;" type_identifier (pointer_declarator "*pbStack_3cc" * identifier) ;) (declaration "int *piStack_3c8;" primitive_type (pointer_declarator "*piStack_3c8" * identifier) ;) (declaration "byte *pbStack_3c4;" type_identifier (pointer_declarator "*pbStack_3c4" * identifier) ;) (declaration "undefined *puStack_3c0;" type_identifier (pointer_declarator "*puStack_3c0" * identifier) ;) (declaration "byte *pbStack_3bc;" type_identifier (pointer_declarator "*pbStack_3bc" * identifier) ;) (declaration "byte *pbStack_3b8;" type_identifier (pointer_declarator "*pbStack_3b8" * identifier) ;) (declaration "code *pcStack_3b4;" type_identifier (pointer_declarator "*pcStack_3b4" * identifier) ;) (declaration "byte *pbStack_3a8;" type_identifier (pointer_declarator "*pbStack_3a8" * identifier) ;) (declaration "code *pcStack_3a0;" type_identifier (pointer_declarator "*pcStack_3a0" * identifier) ;) (declaration "undefined auStack_398 [4];" type_identifier (array_declarator "auStack_398 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_394;" primitive_type identifier ;) (declaration "byte *pbStack_38c;" type_identifier (pointer_declarator "*pbStack_38c" * identifier) ;) (declaration "byte *pbStack_388;" type_identifier (pointer_declarator "*pbStack_388" * identifier) ;) (declaration "byte *pbStack_384;" type_identifier (pointer_declarator "*pbStack_384" * identifier) ;) (declaration "undefined *puStack_380;" type_identifier (pointer_declarator "*puStack_380" * identifier) ;) (declaration "code *pcStack_37c;" type_identifier (pointer_declarator "*pcStack_37c" * identifier) ;) (declaration "undefined *puStack_368;" type_identifier (pointer_declarator "*puStack_368" * identifier) ;) (declaration "byte *pbStack_35c;" type_identifier (pointer_declarator "*pbStack_35c" * identifier) ;) (declaration "byte *pbStack_358;" type_identifier (pointer_declarator "*pbStack_358" * identifier) ;) (declaration "code *pcStack_354;" type_identifier (pointer_declarator "*pcStack_354" * identifier) ;) (declaration "int local_334;" primitive_type identifier ;) (declaration "byte local_330 [768];" type_identifier (array_declarator "local_330 [768]" identifier [ number_literal ]) ;) (declaration "byte local_30;" type_identifier identifier ;) (declaration "byte local_2f;" type_identifier identifier ;) (declaration "byte local_2e;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar25 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar25 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 0x124);" (assignment_expression "uVar3 = *(uint *)(param_1 + 0x124)" identifier = (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000534bc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000534bc" * (cast_expression "(int *)PTR___stack_chk_guard_000534bc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar19 = param_3;" (assignment_expression "pbVar19 = param_3" identifier = identifier) ;) (if_statement "if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" if (parenthesized_expression "((uVar3 & 1) == 0)" ( (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }" { (labeled_statement "LAB_0002bebc:\n    param_3 = unaff_s5;" statement_identifier : (expression_statement "param_3 = unaff_s5;" (assignment_expression "param_3 = unaff_s5" identifier = identifier) ;)) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" else (compound_statement "{\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" { (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (if_statement "if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }" if (parenthesized_expression "((uVar3 & 2) != 0)" ( (binary_expression "(uVar3 & 2) != 0" (parenthesized_expression "(uVar3 & 2)" ( (binary_expression "uVar3 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }" { (labeled_statement "LAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();" statement_identifier : (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (expression_statement "param_1 = pbVar24;" (assignment_expression "param_1 = pbVar24" identifier = identifier) ;) (goto_statement "goto LAB_0002bebc;" goto statement_identifier ;) })) (expression_statement "unaff_s1 = param_1;" (assignment_expression "unaff_s1 = param_1" identifier = identifier) ;) (if_statement "if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }" if (parenthesized_expression "((uVar3 & 4) != 0)" ( (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }" { (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x68c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x68c" identifier + number_literal) ))) ;) (labeled_statement "LAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar25) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar25)" ( (binary_expression "local_2c == *(int *)puVar25" identifier == (pointer_expression "*(int *)puVar25" * (cast_expression "(int *)puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00053484)();" (call_expression "(*(code *)PTR___stack_chk_fail_00053484)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00053484)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00053484" * (cast_expression "(code *)PTR___stack_chk_fail_00053484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "unaff_s5 = param_3;" (assignment_expression "unaff_s5 = param_3" identifier = identifier) ;) (goto_statement "goto LAB_0002beac;" goto statement_identifier ;) })) (expression_statement "*(uint *)(param_1 + 0x124) = uVar3 | 2;" (assignment_expression "*(uint *)(param_1 + 0x124) = uVar3 | 2" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = (binary_expression "uVar3 | 2" identifier | number_literal)) ;) (if_statement "if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "((param_1[0x1ff] & 2) == 0)" ( (binary_expression "(param_1[0x1ff] & 2) == 0" (parenthesized_expression "(param_1[0x1ff] & 2)" ( (binary_expression "param_1[0x1ff] & 2" (subscript_expression "param_1[0x1ff]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" { (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6b4)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6b4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) (expression_statement "unaff_s2 = (byte *)0xaaaa0000;" (assignment_expression "unaff_s2 = (byte *)0xaaaa0000" identifier = (cast_expression "(byte *)0xaaaa0000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3)))" ( (binary_expression "(param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))" (parenthesized_expression "(param_3 < &DAT_00000301)" ( (binary_expression "param_3 < &DAT_00000301" identifier < (pointer_expression "&DAT_00000301" & identifier)) )) && (parenthesized_expression "(unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))" ( (comma_expression "unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3)" (assignment_expression "unaff_s2 = (byte *)((uint)param_3 / 3)" identifier = (cast_expression "(byte *)((uint)param_3 / 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_3 / 3)" ( (binary_expression "(uint)param_3 / 3" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) / number_literal) )))) , (binary_expression "param_3 == (byte *)((int)unaff_s2 * 3)" identifier == (cast_expression "(byte *)((int)unaff_s2 * 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 * 3)" ( (binary_expression "(int)unaff_s2 * 3" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ))) )) (compound_statement "{\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" { (expression_statement "local_334 = (int)unaff_s2 << 1;" (assignment_expression "local_334 = (int)unaff_s2 << 1" identifier = (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (if_statement "if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" if (parenthesized_expression "(param_1[0x1ff] == 3)" ( (binary_expression "param_1[0x1ff] == 3" (subscript_expression "param_1[0x1ff]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }" { (expression_statement "pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));" (assignment_expression "pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f))" identifier = (cast_expression "(byte *)(1 << (param_1[0x200] & 0x1f))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1 << (param_1[0x200] & 0x1f))" ( (binary_expression "1 << (param_1[0x200] & 0x1f)" number_literal << (parenthesized_expression "(param_1[0x200] & 0x1f)" ( (binary_expression "param_1[0x200] & 0x1f" (subscript_expression "param_1[0x200]" identifier [ number_literal ]) & number_literal) ))) )))) ;) (if_statement "if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }" if (parenthesized_expression "((int)pbVar19 < (int)unaff_s2)" ( (binary_expression "(int)pbVar19 < (int)unaff_s2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          unaff_s2 = pbVar19;\n        }" { (expression_statement "unaff_s2 = pbVar19;" (assignment_expression "unaff_s2 = pbVar19" identifier = identifier) ;) })) (expression_statement "local_334 = (int)unaff_s2 << 1;" (assignment_expression "local_334 = (int)unaff_s2 << 1" identifier = (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (if_statement "if (0 < (int)unaff_s2) goto LAB_0002bc70;" if (parenthesized_expression "(0 < (int)unaff_s2)" ( (binary_expression "0 < (int)unaff_s2" number_literal < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002bc70;" goto statement_identifier ;)) }) (else_clause "else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" else (if_statement "if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" if (parenthesized_expression "(unaff_s2 != (byte *)0x0)" ( (binary_expression "unaff_s2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" { (labeled_statement "LAB_0002bc70:\n        unaff_s7 = &local_30;" statement_identifier : (expression_statement "unaff_s7 = &local_30;" (assignment_expression "unaff_s7 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;)) (expression_statement "unaff_s6 = local_330 + (int)(unaff_s2 + local_334);" (assignment_expression "unaff_s6 = local_330 + (int)(unaff_s2 + local_334)" identifier = (binary_expression "local_330 + (int)(unaff_s2 + local_334)" identifier + (cast_expression "(int)(unaff_s2 + local_334)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s2 + local_334)" ( (binary_expression "unaff_s2 + local_334" identifier + identifier) ))))) ;) (expression_statement "pbVar19 = local_330;" (assignment_expression "pbVar19 = local_330" identifier = identifier) ;) (do_statement "do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);" do (compound_statement "{\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        }" { (expression_statement "FUN_0002aef8(param_1,unaff_s7,3);" (call_expression "FUN_0002aef8(param_1,unaff_s7,3)" identifier (argument_list "(param_1,unaff_s7,3)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s0 = pbVar19 + 3;" (assignment_expression "unaff_s0 = pbVar19 + 3" identifier = (binary_expression "pbVar19 + 3" identifier + number_literal)) ;) (expression_statement "*pbVar19 = local_30;" (assignment_expression "*pbVar19 = local_30" (pointer_expression "*pbVar19" * identifier) = identifier) ;) (expression_statement "pbVar19[1] = local_2f;" (assignment_expression "pbVar19[1] = local_2f" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar19[2] = local_2e;" (assignment_expression "pbVar19[2] = local_2e" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar19 = unaff_s0;" (assignment_expression "pbVar19 = unaff_s0" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s6 != unaff_s0)" ( (binary_expression "unaff_s6 != unaff_s0" identifier != identifier) )) ;) })))) (expression_statement "unaff_s8 = local_330;" (assignment_expression "unaff_s8 = local_330" identifier = identifier) ;) (expression_statement "FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));" (call_expression "FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334))" identifier (argument_list "(param_1,(int)param_3 - (int)(unaff_s2 + local_334))" ( identifier , (binary_expression "(int)param_3 - (int)(unaff_s2 + local_334)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(unaff_s2 + local_334)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s2 + local_334)" ( (binary_expression "unaff_s2 + local_334" identifier + identifier) )))) ))) ;) (expression_statement "pbVar19 = unaff_s8;" (assignment_expression "pbVar19 = unaff_s8" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);" (call_expression "(*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2)" (parenthesized_expression "(*(code *)PTR_png_set_PLTE_000533d0)" ( (pointer_expression "*(code *)PTR_png_set_PLTE_000533d0" * (cast_expression "(code *)PTR_png_set_PLTE_000533d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,unaff_s8,unaff_s2)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" if (parenthesized_expression "(*(short *)(param_1 + 0x1f8) == 0)" ( (binary_expression "*(short *)(param_1 + 0x1f8) == 0" (pointer_expression "*(short *)(param_1 + 0x1f8)" * (cast_expression "(short *)(param_1 + 0x1f8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1f8)" ( (binary_expression "param_1 + 0x1f8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }" { (if_statement "if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" { (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;" if (parenthesized_expression "((uVar3 & 0x10) != 0)" ( (binary_expression "(uVar3 & 0x10) != 0" (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002bd04;" goto statement_identifier ;)) (goto_statement "goto LAB_0002bd24;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" else (compound_statement "{\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" { (expression_statement "param_1[0x1f8] = 0;" (assignment_expression "param_1[0x1f8] = 0" (subscript_expression "param_1[0x1f8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1f9] = 0;" (assignment_expression "param_1[0x1f9] = 0" (subscript_expression "param_1[0x1f9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }" { (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6d0)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6d0" identifier + number_literal) ))) ;) }) (else_clause "else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" else (compound_statement "{\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" { (labeled_statement "LAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;" statement_identifier : (expression_statement "puVar2 = PTR_png_chunk_benign_error_0005349c;" (assignment_expression "puVar2 = PTR_png_chunk_benign_error_0005349c" identifier = identifier) ;)) (expression_statement "puVar27 = PTR_s_nt_0005301c;" (assignment_expression "puVar27 = PTR_s_nt_0005301c" identifier = identifier) ;) (expression_statement "param_2[0x16] = 0;" (assignment_expression "param_2[0x16] = 0" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x17] = 0;" (assignment_expression "param_2[0x17] = 0" (subscript_expression "param_2[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar2)(param_1,puVar27 + 0x6d0);" (call_expression "(*(code *)puVar2)(param_1,puVar27 + 0x6d0)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar27 + 0x6d0)" ( identifier , (binary_expression "puVar27 + 0x6d0" identifier + number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" statement_identifier : (if_statement "if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" if (parenthesized_expression "((uVar3 & 0x40) != 0)" ( (binary_expression "(uVar3 & 0x40) != 0" (parenthesized_expression "(uVar3 & 0x40)" ( (binary_expression "uVar3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6e4)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6e4" identifier + number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (if_statement "if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }" if (parenthesized_expression "((uVar3 & 0x20) != 0)" ( (binary_expression "(uVar3 & 0x20) != 0" (parenthesized_expression "(uVar3 & 0x20)" ( (binary_expression "uVar3 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6f8)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6f8" identifier + number_literal) ))) ;) })) }))) }))) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (if_statement "if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "(param_1[0x1ff] != 3)" ( (binary_expression "param_1[0x1ff] != 3" (subscript_expression "param_1[0x1ff]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x69c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x69c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) }))) (expression_statement "pcVar29 = FUN_0002bedc;" (assignment_expression "pcVar29 = FUN_0002bedc" identifier = identifier) ;) (expression_statement "puVar27 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar27 = PTR_png_chunk_error_0005351c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_368 = puVar27 + 0x2f114;" (assignment_expression "puStack_368 = puVar27 + 0x2f114" identifier = (binary_expression "puVar27 + 0x2f114" identifier + number_literal)) ;) (expression_statement "pbStack_35c = unaff_s0;" (assignment_expression "pbStack_35c = unaff_s0" identifier = identifier) ;) (expression_statement "pbStack_358 = unaff_s1;" (assignment_expression "pbStack_358 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_354 = pcVar29;" (assignment_expression "pcStack_354 = pcVar29" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 5) == 5)" ( (binary_expression "(*(uint *)(param_1 + 0x124) & 5) == 5" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 5)" ( (binary_expression "*(uint *)(param_1 + 0x124) & 5" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" { (expression_statement "*(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;" (assignment_expression "*(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x124) | 0x18" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (if_statement "if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" if (parenthesized_expression "(pbVar19 != (byte *)0x0)" ( (binary_expression "pbVar19 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" { (expression_statement "(**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(puStack_368 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_368 + -0x7b54)" * (pointer_expression "*(code **)(puStack_368 + -0x7b54)" * (cast_expression "(code **)(puStack_368 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_368 + -0x7b54)" ( (binary_expression "puStack_368 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(puStack_368 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_368 + -0x7fd4)" * (cast_expression "(int *)(puStack_368 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_368 + -0x7fd4)" ( (binary_expression "puStack_368 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar28 = *(code **)(puVar27 + 0x27640);" (assignment_expression "pcVar28 = *(code **)(puVar27 + 0x27640)" identifier = (pointer_expression "*(code **)(puVar27 + 0x27640)" * (cast_expression "(code **)(puVar27 + 0x27640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x27640)" ( (binary_expression "puVar27 + 0x27640" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002bf78;" (assignment_expression "pcVar30 = FUN_0002bf78" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);" (assignment_expression "pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c)" identifier = (cast_expression "(byte *)(*(int *)(puVar27 + 0x27140) + 0x68c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0x27140) + 0x68c)" ( (binary_expression "*(int *)(puVar27 + 0x27140) + 0x68c" (pointer_expression "*(int *)(puVar27 + 0x27140)" * (cast_expression "(int *)(puVar27 + 0x27140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x27140)" ( (binary_expression "puVar27 + 0x27140" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2f078;" (assignment_expression "pcVar29 = pcVar28 + 0x2f078" identifier = (binary_expression "pcVar28 + 0x2f078" identifier + number_literal)) ;) (expression_statement "piVar21 = *(int **)(pcVar28 + 0x27544);" (assignment_expression "piVar21 = *(int **)(pcVar28 + 0x27544)" identifier = (pointer_expression "*(int **)(pcVar28 + 0x27544)" * (cast_expression "(int **)(pcVar28 + 0x27544)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x27544)" ( (binary_expression "pcVar28 + 0x27544" identifier + number_literal) ))))) ;) (expression_statement "puStack_380 = puVar25;" (assignment_expression "puStack_380 = puVar25" identifier = identifier) ;) (expression_statement "iStack_394 = *piVar21;" (assignment_expression "iStack_394 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (expression_statement "pbStack_3cc = unaff_s0;" (assignment_expression "pbStack_3cc = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_3a0 = pcVar29;" (assignment_expression "pcStack_3a0 = pcVar29" identifier = identifier) ;) (expression_statement "pbStack_38c = unaff_s0;" (assignment_expression "pbStack_38c = unaff_s0" identifier = identifier) ;) (expression_statement "pbStack_388 = unaff_s1;" (assignment_expression "pbStack_388 = unaff_s1" identifier = identifier) ;) (expression_statement "pbStack_384 = unaff_s2;" (assignment_expression "pbStack_384 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_37c = pcVar30;" (assignment_expression "pcStack_37c = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 1) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 1)" ( (binary_expression "*(uint *)(param_1 + 0x124) & 1" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }" { (if_statement "if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 6)" ( (binary_expression "*(uint *)(param_1 + 0x124) & 6" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }" { (if_statement "if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" if (parenthesized_expression "(pbVar19 == &DAT_00000004)" ( (binary_expression "pbVar19 == &DAT_00000004" identifier == (pointer_expression "&DAT_00000004" & identifier)) )) (compound_statement "{\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }" { (expression_statement "puVar25 = auStack_398;" (assignment_expression "puVar25 = auStack_398" identifier = identifier) ;) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = FUN_0002b068(param_1,0);" (assignment_expression "iVar15 = FUN_0002b068(param_1,0)" identifier = (call_expression "FUN_0002b068(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }" { (expression_statement "pbVar19 = (byte *)FUN_0002acb0(puVar25);" (assignment_expression "pbVar19 = (byte *)FUN_0002acb0(puVar25)" identifier = (cast_expression "(byte *)FUN_0002acb0(puVar25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002acb0(puVar25)" identifier (argument_list "(puVar25)" ( identifier ))))) ;) (expression_statement "FUN_00018078(param_1,param_1 + 0x398);" (call_expression "FUN_00018078(param_1,param_1 + 0x398)" identifier (argument_list "(param_1,param_1 + 0x398)" ( identifier , (binary_expression "param_1 + 0x398" identifier + number_literal) ))) ;) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (expression_statement "FUN_00015834(param_1,pbVar13);" (call_expression "FUN_00015834(param_1,pbVar13)" identifier (argument_list "(param_1,pbVar13)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" else (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b54)" ( (binary_expression "pcStack_3a0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" ( (binary_expression "pcStack_3a0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b54)" ( (binary_expression "pcStack_3a0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" ( (binary_expression "pcStack_3a0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "pcVar29 = pcStack_3a0;" (assignment_expression "pcVar29 = pcStack_3a0" identifier = identifier) ;) (if_statement "if (iStack_394 == *piVar21) {\n      return;\n    }" if (parenthesized_expression "(iStack_394 == *piVar21)" ( (binary_expression "iStack_394 == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3a0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b6c)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b6c)" ( (binary_expression "pcStack_3a0 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbStack_3cc = param_1;" (assignment_expression "pbStack_3cc = param_1" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar13;" (assignment_expression "unaff_s2 = pbVar13" identifier = identifier) ;) })) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" * (cast_expression "(code **)(pcVar29 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7ad4)" ( (binary_expression "pcVar29 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002c0dc;" (assignment_expression "pcVar30 = FUN_0002c0dc" identifier = identifier) ;) (expression_statement "puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" identifier = (cast_expression "(undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" * (cast_expression "(int *)(pcVar29 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + -0x7fd4)" ( (binary_expression "pcVar29 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2ef14;" (assignment_expression "pcVar29 = pcVar28 + 0x2ef14" identifier = (binary_expression "pcVar28 + 0x2ef14" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar28 + 0x273e0);" (assignment_expression "piVar22 = *(int **)(pcVar28 + 0x273e0)" identifier = (pointer_expression "*(int **)(pcVar28 + 0x273e0)" * (cast_expression "(int **)(pcVar28 + 0x273e0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x273e0)" ( (binary_expression "pcVar28 + 0x273e0" identifier + number_literal) ))))) ;) (expression_statement "iStack_3d4 = *piVar22;" (assignment_expression "iStack_3d4 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" identifier = identifier) ;) (expression_statement "pbStack_404 = pbStack_3cc;" (assignment_expression "pbStack_404 = pbStack_3cc" identifier = identifier) ;) (expression_statement "pcStack_3e0 = pcVar29;" (assignment_expression "pcStack_3e0 = pcVar29" identifier = identifier) ;) (expression_statement "piStack_3c8 = piVar21;" (assignment_expression "piStack_3c8 = piVar21" identifier = identifier) ;) (expression_statement "pbStack_3c4 = unaff_s2;" (assignment_expression "pbStack_3c4 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_3c0 = puVar25;" (assignment_expression "puStack_3c0 = puVar25" identifier = identifier) ;) (expression_statement "pbStack_3bc = param_2;" (assignment_expression "pbStack_3bc = param_2" identifier = identifier) ;) (expression_statement "pbStack_3b8 = param_3;" (assignment_expression "pbStack_3b8 = param_3" identifier = identifier) ;) (expression_statement "pcStack_3b4 = pcVar30;" (assignment_expression "pcStack_3b4 = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 1) != 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }" { (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }" { (if_statement "if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" if (parenthesized_expression "((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0))" ( (binary_expression "(puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)" (parenthesized_expression "(puVar14 == (undefined1 *)0x0)" ( (binary_expression "puVar14 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*(uint *)(puVar14 + 8) & 2) == 0)" ( (binary_expression "(*(uint *)(puVar14 + 8) & 2) == 0" (parenthesized_expression "(*(uint *)(puVar14 + 8) & 2)" ( (binary_expression "*(uint *)(puVar14 + 8) & 2" (pointer_expression "*(uint *)(puVar14 + 8)" * (cast_expression "(uint *)(puVar14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 8)" ( (binary_expression "puVar14 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }" { (expression_statement "param_2 = (byte *)0x3;" (assignment_expression "param_2 = (byte *)0x3" identifier = (cast_expression "(byte *)0x3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" if (parenthesized_expression "(pbVar24[0x1ff] == 3)" ( (binary_expression "pbVar24[0x1ff] == 3" (subscript_expression "pbVar24[0x1ff]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }" { (expression_statement "pbVar23 = (byte *)0x8;" (assignment_expression "pbVar23 = (byte *)0x8" identifier = (cast_expression "(byte *)0x8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar19 == (byte *)0x3) goto LAB_0002c168;" if (parenthesized_expression "(pbVar19 == (byte *)0x3)" ( (binary_expression "pbVar19 == (byte *)0x3" identifier == (cast_expression "(byte *)0x3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c168;" goto statement_identifier ;)) (labeled_statement "LAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);" statement_identifier : (expression_statement "iVar15 = *(int *)(pcVar28 + 0x26f40);" (assignment_expression "iVar15 = *(int *)(pcVar28 + 0x26f40)" identifier = (pointer_expression "*(int *)(pcVar28 + 0x26f40)" * (cast_expression "(int *)(pcVar28 + 0x26f40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x26f40)" ( (binary_expression "pcVar28 + 0x26f40" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" else (compound_statement "{\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" { (expression_statement "param_2 = (byte *)(uint)pbVar24[0x203];" (assignment_expression "param_2 = (byte *)(uint)pbVar24[0x203]" identifier = (cast_expression "(byte *)(uint)pbVar24[0x203]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar24[0x203]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[0x203]" identifier [ number_literal ])))) ;) (expression_statement "pbVar23 = (byte *)(uint)pbVar24[0x200];" (assignment_expression "pbVar23 = (byte *)(uint)pbVar24[0x200]" identifier = (cast_expression "(byte *)(uint)pbVar24[0x200]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar24[0x200]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[0x200]" identifier [ number_literal ])))) ;) (if_statement "if (param_2 != pbVar19) goto LAB_0002c268;" if (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) (goto_statement "goto LAB_0002c268;" goto statement_identifier ;)) (labeled_statement "LAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);" statement_identifier : (expression_statement "iVar15 = *(int *)(pcVar28 + 0x26f40);" (assignment_expression "iVar15 = *(int *)(pcVar28 + 0x26f40)" identifier = (pointer_expression "*(int *)(pcVar28 + 0x26f40)" * (cast_expression "(int *)(pcVar28 + 0x26f40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x26f40)" ( (binary_expression "pcVar28 + 0x26f40" identifier + number_literal) ))))) ;)) (if_statement "if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }" if (parenthesized_expression "(param_2 < &DAT_00000005)" ( (binary_expression "param_2 < &DAT_00000005" identifier < (pointer_expression "&DAT_00000005" & identifier)) )) (compound_statement "{\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }" { (expression_statement "abStack_3d8[0] = (byte)pbVar23;" (assignment_expression "abStack_3d8[0] = (byte)pbVar23" (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]) = (cast_expression "(byte)pbVar23" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;) (expression_statement "abStack_3d8[1] = abStack_3d8[0];" (assignment_expression "abStack_3d8[1] = abStack_3d8[0]" (subscript_expression "abStack_3d8[1]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "abStack_3d8[2] = abStack_3d8[0];" (assignment_expression "abStack_3d8[2] = abStack_3d8[0]" (subscript_expression "abStack_3d8[2]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "abStack_3d8[3] = abStack_3d8[0];" (assignment_expression "abStack_3d8[3] = abStack_3d8[0]" (subscript_expression "abStack_3d8[3]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "FUN_0002aef8(pbVar24,abStack_3d8);" (call_expression "FUN_0002aef8(pbVar24,abStack_3d8)" identifier (argument_list "(pbVar24,abStack_3d8)" ( identifier , identifier ))) ;) (expression_statement "iVar15 = FUN_0002b068(pbVar24,0);" (assignment_expression "iVar15 = FUN_0002b068(pbVar24,0)" identifier = (call_expression "FUN_0002b068(pbVar24,0)" identifier (argument_list "(pbVar24,0)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s2 = pbVar23;" (assignment_expression "unaff_s2 = pbVar23" identifier = identifier) ;) (expression_statement "param_3 = abStack_3d8;" (assignment_expression "param_3 = abStack_3d8" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }" { (if_statement "if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }" { (labeled_statement "LAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" statement_identifier : (if_statement "if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" if (parenthesized_expression "((pbVar24[0x1ff] & 2) == 0)" ( (binary_expression "(pbVar24[0x1ff] & 2) == 0" (parenthesized_expression "(pbVar24[0x1ff] & 2)" ( (binary_expression "pbVar24[0x1ff] & 2" (subscript_expression "pbVar24[0x1ff]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }" { (expression_statement "pbVar24[599] = abStack_3d8[0];" (assignment_expression "pbVar24[599] = abStack_3d8[0]" (subscript_expression "pbVar24[599]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x254] = abStack_3d8[0];" (assignment_expression "pbVar24[0x254] = abStack_3d8[0]" (subscript_expression "pbVar24[0x254]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x255] = abStack_3d8[0];" (assignment_expression "pbVar24[0x255] = abStack_3d8[0]" (subscript_expression "pbVar24[0x255]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x256] = abStack_3d8[0];" (assignment_expression "pbVar24[0x256] = abStack_3d8[0]" (subscript_expression "pbVar24[0x256]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[600] = abStack_3d8[1];" (assignment_expression "pbVar24[600] = abStack_3d8[1]" (subscript_expression "pbVar24[600]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" else (compound_statement "{\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" { (expression_statement "pbVar24[0x254] = abStack_3d8[0];" (assignment_expression "pbVar24[0x254] = abStack_3d8[0]" (subscript_expression "pbVar24[0x254]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x255] = abStack_3d8[1];" (assignment_expression "pbVar24[0x255] = abStack_3d8[1]" (subscript_expression "pbVar24[0x255]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x256] = abStack_3d8[2];" (assignment_expression "pbVar24[0x256] = abStack_3d8[2]" (subscript_expression "pbVar24[0x256]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[600] = abStack_3d8[3];" (assignment_expression "pbVar24[600] = abStack_3d8[3]" (subscript_expression "pbVar24[600]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[3]" identifier [ number_literal ])) ;) })))) (expression_statement "pbVar19 = pbVar24 + 0x254;" (assignment_expression "pbVar19 = pbVar24 + 0x254" identifier = (binary_expression "pbVar24 + 0x254" identifier + number_literal)) ;) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b38))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b38)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b38)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b38)" ( (binary_expression "pcStack_3e0 + -0x7b38" identifier + number_literal) ))))) )) (argument_list "(pbVar24,puVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" else (compound_statement "{\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" { (if_statement "if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }" if (parenthesized_expression "(((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23))" ( (binary_expression "((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)" (parenthesized_expression "((byte *)(uint)abStack_3d8[0] != (byte *)0x0)" ( (binary_expression "(byte *)(uint)abStack_3d8[0] != (byte *)0x0" (cast_expression "(byte *)(uint)abStack_3d8[0]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)abStack_3d8[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]))) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)" ( (comma_expression "pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23" (assignment_expression "pbVar13 = abStack_3d8" identifier = identifier) , (binary_expression "(byte *)(uint)abStack_3d8[0] <= pbVar23" (cast_expression "(byte *)(uint)abStack_3d8[0]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)abStack_3d8[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]))) <= identifier)) ))) )) (compound_statement "{\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }" { (expression_statement "param_2 = abStack_3d8 + (int)param_2;" (assignment_expression "param_2 = abStack_3d8 + (int)param_2" identifier = (binary_expression "abStack_3d8 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));" do (compound_statement "{\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  }" { (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if (param_2 == pbVar13) goto LAB_0002c1f4;" if (parenthesized_expression "(param_2 == pbVar13)" ( (binary_expression "param_2 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_0002c1f4;" goto statement_identifier ;)) }) while (parenthesized_expression "(((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23))" ( (binary_expression "((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23)" (parenthesized_expression "((byte *)(uint)*pbVar13 != (byte *)0x0)" ( (binary_expression "(byte *)(uint)*pbVar13 != (byte *)0x0" (binary_expression "(byte *)(uint)*pbVar13" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((byte *)(uint)*pbVar13 <= pbVar23)" ( (binary_expression "(byte *)(uint)*pbVar13 <= pbVar23" (binary_expression "(byte *)(uint)*pbVar13" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) <= identifier) ))) )) ;) })) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) })) (goto_statement "goto LAB_0002c230;" goto statement_identifier ;) })) }))) (expression_statement "pbStack_3a8 = pbVar19;" (assignment_expression "pbStack_3a8 = pbVar19" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);" (call_expression "(**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c)" (parenthesized_expression "(**(code **)(pcVar28 + 0x273c0))" ( (pointer_expression "**(code **)(pcVar28 + 0x273c0)" * (pointer_expression "*(code **)(pcVar28 + 0x273c0)" * (cast_expression "(code **)(pcVar28 + 0x273c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x273c0)" ( (binary_expression "pcVar28 + 0x273c0" identifier + number_literal) ))))) )) (argument_list "(pbVar24,iVar15 + 0x69c)" ( identifier , (binary_expression "iVar15 + 0x69c" identifier + number_literal) ))) ;) (expression_statement "pbVar19 = pbStack_3a8;" (assignment_expression "pbVar19 = pbStack_3a8" identifier = identifier) ;) (expression_statement "FUN_0002b068(pbVar24,pbStack_3a8);" (call_expression "FUN_0002b068(pbVar24,pbStack_3a8)" identifier (argument_list "(pbVar24,pbStack_3a8)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = pbVar23;" (assignment_expression "unaff_s2 = pbVar23" identifier = identifier) ;) }) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" else (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c230:\n    pcVar29 = pcStack_3e0;" statement_identifier : (expression_statement "pcVar29 = pcStack_3e0;" (assignment_expression "pcVar29 = pcStack_3e0" identifier = identifier) ;)) (if_statement "if (iStack_3d4 == *piVar22) {\n      return;\n    }" if (parenthesized_expression "(iStack_3d4 == *piVar22)" ( (binary_expression "iStack_3d4 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3e0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b6c)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b6c)" ( (binary_expression "pcStack_3e0 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbStack_404 = pbVar24;" (assignment_expression "pbStack_404 = pbVar24" identifier = identifier) ;) })) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" * (cast_expression "(code **)(pcVar29 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7ad4)" ( (binary_expression "pcVar29 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002c348;" (assignment_expression "pcVar30 = FUN_0002c348" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" * (cast_expression "(int *)(pcVar29 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + -0x7fd4)" ( (binary_expression "pcVar29 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2eca8;" (assignment_expression "pcVar29 = pcVar28 + 0x2eca8" identifier = (binary_expression "pcVar28 + 0x2eca8" identifier + number_literal)) ;) (expression_statement "piVar21 = *(int **)(pcVar28 + 0x27174);" (assignment_expression "piVar21 = *(int **)(pcVar28 + 0x27174)" identifier = (pointer_expression "*(int **)(pcVar28 + 0x27174)" * (cast_expression "(int **)(pcVar28 + 0x27174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x27174)" ( (binary_expression "pcVar28 + 0x27174" identifier + number_literal) ))))) ;) (expression_statement "iStack_40c = *piVar21;" (assignment_expression "iStack_40c = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar23 = pbStack_404;" (assignment_expression "pbVar23 = pbStack_404" identifier = identifier) ;) (expression_statement "pcStack_458 = pcVar29;" (assignment_expression "pcStack_458 = pcVar29" identifier = identifier) ;) (expression_statement "piStack_400 = piVar22;" (assignment_expression "piStack_400 = piVar22" identifier = identifier) ;) (expression_statement "pbStack_3fc = unaff_s2;" (assignment_expression "pbStack_3fc = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_3f8 = puVar14;" (assignment_expression "puStack_3f8 = puVar14" identifier = identifier) ;) (expression_statement "pcStack_3f4 = pcVar30;" (assignment_expression "pcStack_3f4 = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }" if (parenthesized_expression "((*(uint *)(pbVar13 + 0x124) & 1) != 0)" ( (binary_expression "(*(uint *)(pbVar13 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(pbVar13 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar13 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar13 + 0x124)" * (cast_expression "(uint *)(pbVar13 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x124)" ( (binary_expression "pbVar13 + 0x124" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }" { (if_statement "if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((*(uint *)(pbVar13 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar13 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar13 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar13 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar13 + 0x124)" * (cast_expression "(uint *)(pbVar13 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x124)" ( (binary_expression "pbVar13 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }" { (if_statement "if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" if (parenthesized_expression "(pbVar19 == (byte *)0x20)" ( (binary_expression "pbVar19 == (byte *)0x20" identifier == (cast_expression "(byte *)0x20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }" { (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = FUN_0002b068(pbVar13,0);" (assignment_expression "iVar15 = FUN_0002b068(pbVar13,0)" identifier = (call_expression "FUN_0002b068(pbVar13,0)" identifier (argument_list "(pbVar13,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar14 = auStack_42c;" (assignment_expression "puVar14 = auStack_42c" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }" { (expression_statement "iVar15 = FUN_0002acb0(auStack_42c);" (assignment_expression "iVar15 = FUN_0002acb0(auStack_42c)" identifier = (call_expression "FUN_0002acb0(auStack_42c)" identifier (argument_list "(auStack_42c)" ( identifier )))) ;) (expression_statement "iStack_434 = iVar15;" (assignment_expression "iStack_434 = iVar15" identifier = identifier) ;) (expression_statement "iVar8 = FUN_0002acb0(auStack_428);" (assignment_expression "iVar8 = FUN_0002acb0(auStack_428)" identifier = (call_expression "FUN_0002acb0(auStack_428)" identifier (argument_list "(auStack_428)" ( identifier )))) ;) (expression_statement "iStack_430 = iVar8;" (assignment_expression "iStack_430 = iVar8" identifier = identifier) ;) (expression_statement "iVar9 = FUN_0002acb0(auStack_424);" (assignment_expression "iVar9 = FUN_0002acb0(auStack_424)" identifier = (call_expression "FUN_0002acb0(auStack_424)" identifier (argument_list "(auStack_424)" ( identifier )))) ;) (expression_statement "iStack_44c = iVar9;" (assignment_expression "iStack_44c = iVar9" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0002acb0(auStack_420);" (assignment_expression "iVar4 = FUN_0002acb0(auStack_420)" identifier = (call_expression "FUN_0002acb0(auStack_420)" identifier (argument_list "(auStack_420)" ( identifier )))) ;) (expression_statement "iStack_448 = iVar4;" (assignment_expression "iStack_448 = iVar4" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0002acb0(auStack_41c);" (assignment_expression "iVar5 = FUN_0002acb0(auStack_41c)" identifier = (call_expression "FUN_0002acb0(auStack_41c)" identifier (argument_list "(auStack_41c)" ( identifier )))) ;) (expression_statement "iStack_444 = iVar5;" (assignment_expression "iStack_444 = iVar5" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0002acb0(auStack_418);" (assignment_expression "iVar6 = FUN_0002acb0(auStack_418)" identifier = (call_expression "FUN_0002acb0(auStack_418)" identifier (argument_list "(auStack_418)" ( identifier )))) ;) (expression_statement "iStack_440 = iVar6;" (assignment_expression "iStack_440 = iVar6" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0002acb0(auStack_414);" (assignment_expression "iVar7 = FUN_0002acb0(auStack_414)" identifier = (call_expression "FUN_0002acb0(auStack_414)" identifier (argument_list "(auStack_414)" ( identifier )))) ;) (expression_statement "iStack_43c = iVar7;" (assignment_expression "iStack_43c = iVar7" identifier = identifier) ;) (expression_statement "iStack_438 = FUN_0002acb0(auStack_410);" (assignment_expression "iStack_438 = FUN_0002acb0(auStack_410)" identifier = (call_expression "FUN_0002acb0(auStack_410)" identifier (argument_list "(auStack_410)" ( identifier )))) ;) (if_statement "if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (compound_statement "{\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }" { (expression_statement "iVar15 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar15 = *(int *)(pcStack_458 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" else (compound_statement "{\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" { (expression_statement "iVar15 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar15 = *(int *)(pcStack_458 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) ))))) ;) (if_statement "if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" if (parenthesized_expression "(((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1))))" ( (binary_expression "((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))" (parenthesized_expression "((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1))))" ( (binary_expression "(((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))" (parenthesized_expression "(((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1))" ( (binary_expression "((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)" (parenthesized_expression "((iVar8 != -1) && (iVar9 != -1))" ( (binary_expression "(iVar8 != -1) && (iVar9 != -1)" (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) ))) )) && (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) ))) )) && (parenthesized_expression "((iVar5 != -1 && (iVar6 != -1)))" ( (parenthesized_expression "(iVar5 != -1 && (iVar6 != -1))" ( (binary_expression "iVar5 != -1 && (iVar6 != -1)" (binary_expression "iVar5 != -1" identifier != number_literal) && (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) ))) )) ))) )) && (parenthesized_expression "((iVar7 != -1 && (iStack_438 != -1)))" ( (parenthesized_expression "(iVar7 != -1 && (iStack_438 != -1))" ( (binary_expression "iVar7 != -1 && (iStack_438 != -1)" (binary_expression "iVar7 != -1" identifier != number_literal) && (parenthesized_expression "(iStack_438 != -1)" ( (binary_expression "iStack_438 != -1" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" { (expression_statement "uVar1 = *(ushort *)(pbVar13 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(pbVar13 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" * (cast_expression "(ushort *)(pbVar13 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x3e2)" ( (binary_expression "pbVar13 + 0x3e2" identifier + number_literal) ))))) ;) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" identifier = identifier) ;) (if_statement "if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" if (parenthesized_expression "(-1 < (short)uVar1)" ( (binary_expression "-1 < (short)uVar1" number_literal < (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) (compound_statement "{\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" { (if_statement "if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" if (parenthesized_expression "((uVar1 & 0x10) == 0)" ( (binary_expression "(uVar1 & 0x10) == 0" (parenthesized_expression "(uVar1 & 0x10)" ( (binary_expression "uVar1 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }" { (expression_statement "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;" (assignment_expression "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10" (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" * (cast_expression "(ushort *)(pbVar13 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x3e2)" ( (binary_expression "pbVar13 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x10" identifier | number_literal)) ;) (expression_statement "pbVar19 = (byte *)&iStack_44c;" (assignment_expression "pbVar19 = (byte *)&iStack_44c" identifier = (cast_expression "(byte *)&iStack_44c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iStack_44c" & identifier))) ;) (expression_statement "FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);" (call_expression "FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1)" identifier (argument_list "(pbVar13,pbVar13 + 0x398,pbVar19,1)" ( identifier , (binary_expression "pbVar13 + 0x398" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00015834(pbVar13,pbVar16);" (call_expression "FUN_00015834(pbVar13,pbVar16)" identifier (argument_list "(pbVar13,pbVar16)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" else (compound_statement "{\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" { (expression_statement "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" * (cast_expression "(ushort *)(pbVar13 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x3e2)" ( (binary_expression "pbVar13 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(pbVar13,pbVar16);" (call_expression "FUN_00015834(pbVar13,pbVar16)" identifier (argument_list "(pbVar13,pbVar16)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) })) (goto_statement "goto LAB_0002c3d4;" goto statement_identifier ;) })) }))) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,iVar15 + 0x70c)" ( identifier , (binary_expression "iVar15 + 0x70c" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" else (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c3d4:\n    pcVar29 = pcStack_458;" statement_identifier : (expression_statement "pcVar29 = pcStack_458;" (assignment_expression "pcVar29 = pcStack_458" identifier = identifier) ;)) (if_statement "if (iStack_40c == *piVar21) {\n      return;\n    }" if (parenthesized_expression "(iStack_40c == *piVar21)" ( (binary_expression "iStack_40c == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_458 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_458 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b6c)" * (cast_expression "(code **)(pcStack_458 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b6c)" ( (binary_expression "pcStack_458 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar23 = pbVar13;" (assignment_expression "pbVar23 = pbVar13" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar16;" (assignment_expression "unaff_s2 = pbVar16" identifier = identifier) ;) })) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" * (cast_expression "(code **)(pcVar29 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7ad4)" ( (binary_expression "pcVar29 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002c5dc;" (assignment_expression "pcVar30 = FUN_0002c5dc" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" * (cast_expression "(int *)(pcVar29 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + -0x7fd4)" ( (binary_expression "pcVar29 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2ea14;" (assignment_expression "pcVar29 = pcVar28 + 0x2ea14" identifier = (binary_expression "pcVar28 + 0x2ea14" identifier + number_literal)) ;) (expression_statement "pbVar13 = *(byte **)(pcVar28 + 0x26ee0);" (assignment_expression "pbVar13 = *(byte **)(pcVar28 + 0x26ee0)" identifier = (pointer_expression "*(byte **)(pcVar28 + 0x26ee0)" * (cast_expression "(byte **)(pcVar28 + 0x26ee0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x26ee0)" ( (binary_expression "pcVar28 + 0x26ee0" identifier + number_literal) ))))) ;) (expression_statement "iStack_47c = *(int *)pbVar13;" (assignment_expression "iStack_47c = *(int *)pbVar13" identifier = (pointer_expression "*(int *)pbVar13" * (cast_expression "(int *)pbVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcStack_488 = pcVar29;" (assignment_expression "pcStack_488 = pcVar29" identifier = identifier) ;) (expression_statement "pbStack_478 = pbVar23;" (assignment_expression "pbStack_478 = pbVar23" identifier = identifier) ;) (expression_statement "piStack_474 = piVar21;" (assignment_expression "piStack_474 = piVar21" identifier = identifier) ;) (expression_statement "pbStack_470 = unaff_s2;" (assignment_expression "pbStack_470 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_46c = pcVar30;" (assignment_expression "pcStack_46c = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 1) == 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 1) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }" { (expression_statement "pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" identifier = (cast_expression "(byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" ( (binary_expression "*(int *)(pcVar28 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(pcVar28 + 0x26a40)" * (cast_expression "(int *)(pcVar28 + 0x26a40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x26a40)" ( (binary_expression "pcVar28 + 0x26a40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar28 + 0x26f40))();" (call_expression "(**(code **)(pcVar28 + 0x26f40))()" (parenthesized_expression "(**(code **)(pcVar28 + 0x26f40))" ( (pointer_expression "**(code **)(pcVar28 + 0x26f40)" * (pointer_expression "*(code **)(pcVar28 + 0x26f40)" * (cast_expression "(code **)(pcVar28 + 0x26f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x26f40)" ( (binary_expression "pcVar28 + 0x26f40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) }) (else_clause "else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" else (compound_statement "{\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" { (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }" { (if_statement "if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" if (parenthesized_expression "(pbVar19 == (byte *)0x1)" ( (binary_expression "pbVar19 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }" { (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)0x0;" (assignment_expression "pbVar17 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar15 = FUN_0002b068();" (assignment_expression "iVar15 = FUN_0002b068()" identifier = (call_expression "FUN_0002b068()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" { (expression_statement "uVar1 = *(ushort *)(pbVar24 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(pbVar24 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(pbVar24 + 0x3e2)" * (cast_expression "(ushort *)(pbVar24 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x3e2)" ( (binary_expression "pbVar24 + 0x3e2" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" if (parenthesized_expression "(-1 < (short)uVar1)" ( (binary_expression "-1 < (short)uVar1" number_literal < (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) (compound_statement "{\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" { (if_statement "if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }" { (expression_statement "pbVar19 = (byte *)(uint)bStack_47d;" (assignment_expression "pbVar19 = (byte *)(uint)bStack_47d" identifier = (cast_expression "(byte *)(uint)bStack_47d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bStack_47d" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "FUN_00018198(pbVar24,pbVar24 + 0x398);" (call_expression "FUN_00018198(pbVar24,pbVar24 + 0x398)" identifier (argument_list "(pbVar24,pbVar24 + 0x398)" ( identifier , (binary_expression "pbVar24 + 0x398" identifier + number_literal) ))) ;) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "pbVar17 = pbVar16;" (assignment_expression "pbVar17 = pbVar16" identifier = identifier) ;) (expression_statement "FUN_00015834();" (call_expression "FUN_00015834()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" else (compound_statement "{\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" { (expression_statement "*(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(pbVar24 + 0x3e2)" * (cast_expression "(ushort *)(pbVar24 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x3e2)" ( (binary_expression "pbVar24 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(pbVar24,pbVar16);" (call_expression "FUN_00015834(pbVar24,pbVar16)" identifier (argument_list "(pbVar24,pbVar16)" ( identifier , identifier ))) ;) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) })) }) (else_clause "else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" else (compound_statement "{\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" else (compound_statement "{\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar16;" (assignment_expression "unaff_s2 = pbVar16" identifier = identifier) ;) (expression_statement "pcVar29 = pcStack_488;" (assignment_expression "pcVar29 = pcStack_488" identifier = identifier) ;) (if_statement "if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }" if (parenthesized_expression "(iStack_47c == *(int *)pbVar13)" ( (binary_expression "iStack_47c == *(int *)pbVar13" identifier == (pointer_expression "*(int *)pbVar13" * (cast_expression "(int *)pbVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar29 = *(code **)(pcVar29 + -0x7b6c);" (assignment_expression "pcVar29 = *(code **)(pcVar29 + -0x7b6c)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7b6c)" * (cast_expression "(code **)(pcVar29 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7b6c)" ( (binary_expression "pcVar29 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = FUN_0002c770;" (assignment_expression "pcVar28 = FUN_0002c770" identifier = identifier) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = *(int **)(pcVar29 + 0x26d4c);" (assignment_expression "piVar21 = *(int **)(pcVar29 + 0x26d4c)" identifier = (pointer_expression "*(int **)(pcVar29 + 0x26d4c)" * (cast_expression "(int **)(pcVar29 + 0x26d4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d4c)" ( (binary_expression "pcVar29 + 0x26d4c" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);" (assignment_expression "pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1)" identifier = (cast_expression "(byte *)(*(uint *)(pbVar11 + 0x124) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar11 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar11 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar11 + 0x124)" * (cast_expression "(uint *)(pbVar11 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x124)" ( (binary_expression "pbVar11 + 0x124" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "iStack_4c4 = *piVar21;" (assignment_expression "iStack_4c4 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pbVar24 = unaff_s2;" (assignment_expression "pbVar24 = unaff_s2" identifier = identifier) ;) (expression_statement "pbStack_4c0 = pbVar23;" (assignment_expression "pbStack_4c0 = pbVar23" identifier = identifier) ;) (expression_statement "pbStack_4bc = pbVar13;" (assignment_expression "pbStack_4bc = pbVar13" identifier = identifier) ;) (expression_statement "pbStack_4b8 = unaff_s2;" (assignment_expression "pbStack_4b8 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_4b4 = puVar14;" (assignment_expression "puStack_4b4 = puVar14" identifier = identifier) ;) (expression_statement "pbStack_4b0 = param_2;" (assignment_expression "pbStack_4b0 = param_2" identifier = identifier) ;) (expression_statement "pbStack_4ac = param_3;" (assignment_expression "pbStack_4ac = param_3" identifier = identifier) ;) (expression_statement "pbStack_4a8 = unaff_s6;" (assignment_expression "pbStack_4a8 = unaff_s6" identifier = identifier) ;) (expression_statement "pbStack_4a4 = unaff_s7;" (assignment_expression "pbStack_4a4 = unaff_s7" identifier = identifier) ;) (expression_statement "pbStack_4a0 = unaff_s8;" (assignment_expression "pbStack_4a0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_49c = pcVar28;" (assignment_expression "pcStack_49c = pcVar28" identifier = identifier) ;) (expression_statement "apbStack_490[0] = pbVar19;" (assignment_expression "apbStack_490[0] = pbVar19" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;" if (parenthesized_expression "(pbVar16 == (byte *)0x0)" ( (binary_expression "pbVar16 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd34;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" if (parenthesized_expression "((*(uint *)(pbVar11 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar11 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar11 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar11 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar11 + 0x124)" * (cast_expression "(uint *)(pbVar11 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x124)" ( (binary_expression "pbVar11 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }" { (if_statement "if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" if (parenthesized_expression "((byte *)0xd < pbVar19)" ( (binary_expression "(byte *)0xd < pbVar19" (cast_expression "(byte *)0xd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" { (if_statement "if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" if (parenthesized_expression "((short)*(ushort *)(pbVar11 + 0x3e2) < 0)" ( (binary_expression "(short)*(ushort *)(pbVar11 + 0x3e2) < 0" (cast_expression "(short)*(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) ))))) < number_literal) )) (compound_statement "{\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (if_statement "if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }" if (parenthesized_expression "((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0)" ( (binary_expression "(*(ushort *)(pbVar11 + 0x3e2) & 4) != 0" (parenthesized_expression "(*(ushort *)(pbVar11 + 0x3e2) & 4)" ( (binary_expression "*(ushort *)(pbVar11 + 0x3e2) & 4" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }" { (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x71c)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x71c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);" statement_identifier : (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" identifier (argument_list "(pbVar11,apbStack_490[0])" ( identifier , (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002c934;" goto statement_identifier ;) })) (expression_statement "pbVar13 = (byte *)0x51;" (assignment_expression "pbVar13 = (byte *)0x51" identifier = (cast_expression "(byte *)0x51" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }" if (parenthesized_expression "(pbVar19 < (byte *)0x51)" ( (binary_expression "pbVar19 < (byte *)0x51" identifier < (cast_expression "(byte *)0x51" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar13 = pbVar19;\n      }" { (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) })) (expression_statement "pbVar24 = abStack_99c;" (assignment_expression "pbVar24 = abStack_99c" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar13;" (assignment_expression "pbVar19 = pbVar13" identifier = identifier) ;) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;" (assignment_expression "apbStack_490[0] = apbStack_490[0] + -(int)pbVar13" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) = (binary_expression "apbStack_490[0] + -(int)pbVar13" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) + (unary_expression "-(int)pbVar13" - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" if (parenthesized_expression "((byte *)0xa < apbStack_490[0])" ( (binary_expression "(byte *)0xa < apbStack_490[0]" (cast_expression "(byte *)0xa" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) )) (compound_statement "{\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" { (expression_statement "pbVar23 = abStack_99c;" (assignment_expression "pbVar23 = abStack_99c" identifier = identifier) ;) (if_statement "if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" if (parenthesized_expression "(abStack_99c[0] == 0)" ( (binary_expression "abStack_99c[0] == 0" (subscript_expression "abStack_99c[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }" { (labeled_statement "LAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);" statement_identifier : (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x748)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x748" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;)) }) (else_clause "else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" else (compound_statement "{\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" { (do_statement "do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);" do (compound_statement "{\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          }" { (expression_statement "pbVar26 = pbVar16;" (assignment_expression "pbVar26 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = pbVar26 + 1;" (assignment_expression "unaff_s6 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar26;" (assignment_expression "pbVar16 = pbVar26" identifier = identifier) ;) (if_statement "if (*pbVar23 == 0) goto LAB_0002c86c;" if (parenthesized_expression "(*pbVar23 == 0)" ( (binary_expression "*pbVar23 == 0" (pointer_expression "*pbVar23" * identifier) == number_literal) )) (goto_statement "goto LAB_0002c86c;" goto statement_identifier ;)) (expression_statement "pbVar16 = pbVar26 + 1;" (assignment_expression "pbVar16 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar16 == (byte *)0x50) goto LAB_0002c974;" if (parenthesized_expression "(pbVar16 == (byte *)0x50)" ( (binary_expression "pbVar16 == (byte *)0x50" identifier == (cast_expression "(byte *)0x50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c974;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar13 != pbVar16)" ( (binary_expression "pbVar13 != pbVar16" identifier != identifier) )) ;) (expression_statement "unaff_s6 = pbVar26 + 2;" (assignment_expression "unaff_s6 = pbVar26 + 2" identifier = (binary_expression "pbVar26 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" statement_identifier : (if_statement "if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" if (parenthesized_expression "((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0))" ( (binary_expression "(unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)" (parenthesized_expression "(unaff_s6 < pbVar13)" ( (binary_expression "unaff_s6 < pbVar13" identifier < identifier) )) && (parenthesized_expression "(abStack_99c[(int)unaff_s6] == 0)" ( (binary_expression "abStack_99c[(int)unaff_s6] == 0" (subscript_expression "abStack_99c[(int)unaff_s6]" identifier [ (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) ]) == number_literal) ))) )) (compound_statement "{\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" { (expression_statement "iVar15 = FUN_0002a9cc(pbVar11,0x69434350);" (assignment_expression "iVar15 = FUN_0002a9cc(pbVar11,0x69434350)" identifier = (call_expression "FUN_0002a9cc(pbVar11,0x69434350)" identifier (argument_list "(pbVar11,0x69434350)" ( identifier , number_literal )))) ;) (if_statement "if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }" { (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" identifier = (pointer_expression "*(byte **)(pbVar11 + 0x14c)" * (cast_expression "(byte **)(pbVar11 + 0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) ))))) ;) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" identifier = (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);" (call_expression "(**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26c24))" ( (pointer_expression "**(code **)(pcVar29 + 0x26c24)" * (pointer_expression "*(code **)(pcVar29 + 0x26c24)" * (cast_expression "(code **)(pcVar29 + 0x26c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26c24)" ( (binary_expression "pcVar29 + 0x26c24" identifier + number_literal) ))))) )) (argument_list "(&bStack_948,0,0x84)" ( (pointer_expression "&bStack_948" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pbVar19 = pbVar16 + 2;" (assignment_expression "pbVar19 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar13 + (-2 - (int)pbVar16);" (assignment_expression "pbVar16 = pbVar13 + (-2 - (int)pbVar16)" identifier = (binary_expression "pbVar13 + (-2 - (int)pbVar16)" identifier + (parenthesized_expression "(-2 - (int)pbVar16)" ( (binary_expression "-2 - (int)pbVar16" number_literal - (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbStack_9a0 = (byte *)0x84;" (assignment_expression "pbStack_9a0 = (byte *)0x84" identifier = (cast_expression "(byte *)0x84" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;" (assignment_expression "*(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19" (pointer_expression "*(byte **)(pbVar11 + 0x134)" * (cast_expression "(byte **)(pbVar11 + 0x134)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x134)" ( (binary_expression "pbVar11 + 0x134" identifier + number_literal) )))) = (binary_expression "pbVar24 + (int)pbVar19" identifier + (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(byte **)(pbVar11 + 0x138) = pbVar16;" (assignment_expression "*(byte **)(pbVar11 + 0x138) = pbVar16" (pointer_expression "*(byte **)(pbVar11 + 0x138)" * (cast_expression "(byte **)(pbVar11 + 0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x138)" ( (binary_expression "pbVar11 + 0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" if (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" ( (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" * (cast_expression "(int *)(pbVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x130)" ( (binary_expression "pbVar11 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(pbVar11 + 0x1cc)" * (cast_expression "(int *)(pbVar11 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x1cc)" ( (binary_expression "pbVar11 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }" { (expression_statement "iVar15 = *(int *)(pcVar29 + 0x26a74);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x26a74)" identifier = (pointer_expression "*(int *)(pcVar29 + 0x26a74)" * (cast_expression "(int *)(pcVar29 + 0x26a74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x26a74)" ( (binary_expression "pcVar29 + 0x26a74" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar11 + 0x140) = &bStack_948;" (assignment_expression "*(byte **)(pbVar11 + 0x140) = &bStack_948" (pointer_expression "*(byte **)(pbVar11 + 0x140)" * (cast_expression "(byte **)(pbVar11 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x140)" ( (binary_expression "pbVar11 + 0x140" identifier + number_literal) )))) = (pointer_expression "&bStack_948" & identifier)) ;) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);" (call_expression "FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" identifier (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" ( identifier , identifier , identifier , (pointer_expression "&pbStack_9a0" & identifier) , number_literal ))) ;) (if_statement "if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }" if (parenthesized_expression "(pbStack_9a0 == (byte *)0x0)" ( (binary_expression "pbStack_9a0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }" { (expression_statement "pbStack_9b4 = pbVar11 + 0x398;" (assignment_expression "pbStack_9b4 = pbVar11 + 0x398" identifier = (binary_expression "pbVar11 + 0x398" identifier + number_literal)) ;) (expression_statement "pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);" (assignment_expression "pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" identifier = (cast_expression "(byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" ( (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100" (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945" (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000" (binary_expression "(uint)bStack_948 * 0x1000000" (cast_expression "(uint)bStack_948" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_947 * 0x10000" (cast_expression "(uint)bStack_947" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_945" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_946 * 0x100" (cast_expression "(uint)bStack_946" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "pbVar19 = pbVar24;" (assignment_expression "pbVar19 = pbVar24" identifier = identifier) ;) (expression_statement "iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);" (assignment_expression "iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" identifier = (call_expression "FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" if (parenthesized_expression "((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0))" ( (binary_expression "(iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)" ( (comma_expression "pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0" (assignment_expression "pbVar19 = pbVar24" identifier = identifier) , (comma_expression "iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0" (assignment_expression "iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" identifier = (call_expression "FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" ( identifier , identifier , identifier , identifier , (pointer_expression "&bStack_948" & identifier) , (subscript_expression "pbVar11[0x1ff]" identifier [ number_literal ]) )))) , (binary_expression "iVar8 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" { (expression_statement "pbVar19 = (byte *)0x2;" (assignment_expression "pbVar19 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);" (assignment_expression "pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2)" identifier = (cast_expression "(byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002ab84(pbVar11,pbStack_9c0,2)" identifier (argument_list "(pbVar11,pbStack_9c0,2)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(pbVar16 == (byte *)0x0)" ( (binary_expression "pbVar16 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "iVar15 = *(int *)(pcVar29 + 0x268ac);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar24 = (byte *)(iVar15 + -0x184);" (assignment_expression "pbVar24 = (byte *)(iVar15 + -0x184)" identifier = (cast_expression "(byte *)(iVar15 + -0x184)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x184)" ( (binary_expression "iVar15 + -0x184" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) (expression_statement "pbVar19 = pbVar16;" (assignment_expression "pbVar19 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar13 = &bStack_948;" (assignment_expression "pbVar13 = &bStack_948" identifier = (pointer_expression "&bStack_948" & identifier)) ;) (do_statement "do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);" do (compound_statement "{\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  }" { (expression_statement "pbVar23 = pbVar13 + 0x10;" (assignment_expression "pbVar23 = pbVar13 + 0x10" identifier = (binary_expression "pbVar13 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar20 = *(undefined4 *)(pbVar13 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(pbVar13 + 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar13 + 4)" * (cast_expression "(undefined4 *)(pbVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 4)" ( (binary_expression "pbVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(undefined4 *)(pbVar13 + 8);" (assignment_expression "uVar18 = *(undefined4 *)(pbVar13 + 8)" identifier = (pointer_expression "*(undefined4 *)(pbVar13 + 8)" * (cast_expression "(undefined4 *)(pbVar13 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 8)" ( (binary_expression "pbVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(pbVar13 + 0xc);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar13 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pbVar13 + 0xc)" * (cast_expression "(undefined4 *)(pbVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0xc)" ( (binary_expression "pbVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;" (assignment_expression "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar13" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pbVar13" * (cast_expression "(undefined4 *)pbVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pbVar19 + 4) = uVar20;" (assignment_expression "*(undefined4 *)(pbVar19 + 4) = uVar20" (pointer_expression "*(undefined4 *)(pbVar19 + 4)" * (cast_expression "(undefined4 *)(pbVar19 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar19 + 4)" ( (binary_expression "pbVar19 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar19 + 8) = uVar18;" (assignment_expression "*(undefined4 *)(pbVar19 + 8) = uVar18" (pointer_expression "*(undefined4 *)(pbVar19 + 8)" * (cast_expression "(undefined4 *)(pbVar19 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar19 + 8)" ( (binary_expression "pbVar19 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar19 + 0xc) = uVar12;" (assignment_expression "*(undefined4 *)(pbVar19 + 0xc) = uVar12" (pointer_expression "*(undefined4 *)(pbVar19 + 0xc)" * (cast_expression "(undefined4 *)(pbVar19 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar19 + 0xc)" ( (binary_expression "pbVar19 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar19 = pbVar19 + 0x10;" (assignment_expression "pbVar19 = pbVar19 + 0x10" identifier = (binary_expression "pbVar19 + 0x10" identifier + number_literal)) ;) (expression_statement "pbVar13 = pbVar23;" (assignment_expression "pbVar13 = pbVar23" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar23 != &bStack_8c8)" ( (binary_expression "pbVar23 != &bStack_8c8" identifier != (pointer_expression "&bStack_8c8" & identifier)) )) ;) (expression_statement "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;" (assignment_expression "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar23" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pbVar23" * (cast_expression "(undefined4 *)pbVar23" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;" (assignment_expression "iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100" identifier = (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100" (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5" (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000" (binary_expression "(uint)bStack_8c8 * 0x1000000" (cast_expression "(uint)bStack_8c8" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_8c7 * 0x10000" (cast_expression "(uint)bStack_8c7" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_8c5" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_8c6 * 0x100" (cast_expression "(uint)bStack_8c6" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "pbVar13 = (byte *)(iVar8 * 0xc);" (assignment_expression "pbVar13 = (byte *)(iVar8 * 0xc)" identifier = (cast_expression "(byte *)(iVar8 * 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 * 0xc)" ( (binary_expression "iVar8 * 0xc" identifier * number_literal) )))) ;) (expression_statement "pbStack_9a0 = pbVar13;" (assignment_expression "pbStack_9a0 = pbVar13" identifier = identifier) ;) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" if (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" ( (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" * (cast_expression "(int *)(pbVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x130)" ( (binary_expression "pbVar11 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(pbVar11 + 0x1cc)" * (cast_expression "(int *)(pbVar11 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x1cc)" ( (binary_expression "pbVar11 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }" { (expression_statement "*(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;" (assignment_expression "*(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84" (pointer_expression "*(byte **)(pbVar11 + 0x140)" * (cast_expression "(byte **)(pbVar11 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x140)" ( (binary_expression "pbVar11 + 0x140" identifier + number_literal) )))) = (binary_expression "pbVar16 + 0x84" identifier + number_literal)) ;) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);" (call_expression "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" (parenthesized_expression "(*(code *)(iVar15 + -0x47c4))" ( (pointer_expression "*(code *)(iVar15 + -0x47c4)" * (cast_expression "(code *)(iVar15 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x47c4)" ( (binary_expression "iVar15 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" ( identifier , identifier , identifier , (pointer_expression "&pbStack_9a0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" else (compound_statement "{\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" { (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" * (cast_expression "(int *)(pbVar11 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbStack_9a0 != (byte *)0x0)" ( (binary_expression "pbStack_9a0 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "pbVar19 = pbVar24;" (assignment_expression "pbVar19 = pbVar24" identifier = identifier) ;) (expression_statement "iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);" (assignment_expression "iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" identifier = (call_expression "FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;" (assignment_expression "pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84" identifier = (binary_expression "pbStack_9c0 + iVar8 * -0xc + -0x84" (binary_expression "pbStack_9c0 + iVar8 * -0xc" identifier + (binary_expression "iVar8 * -0xc" identifier * number_literal)) + number_literal)) ;) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" if (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" ( (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" * (cast_expression "(int *)(pbVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x130)" ( (binary_expression "pbVar11 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(pbVar11 + 0x1cc)" * (cast_expression "(int *)(pbVar11 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x1cc)" ( (binary_expression "pbVar11 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }" { (expression_statement "*(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);" (assignment_expression "*(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84)" (pointer_expression "*(byte **)(pbVar11 + 0x140)" * (cast_expression "(byte **)(pbVar11 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x140)" ( (binary_expression "pbVar11 + 0x140" identifier + number_literal) )))) = (binary_expression "pbVar16 + (int)(pbVar13 + 0x84)" identifier + (cast_expression "(int)(pbVar13 + 0x84)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + 0x84)" ( (binary_expression "pbVar13 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;" (call_expression "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)" (parenthesized_expression "(*(code *)(iVar15 + -0x47c4))" ( (pointer_expression "*(code *)(iVar15 + -0x47c4)" * (cast_expression "(code *)(iVar15 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x47c4)" ( (binary_expression "iVar15 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)" ( identifier , identifier , identifier , (pointer_expression "&pbStack_9a0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" else (compound_statement "{\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" { (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" * (cast_expression "(int *)(pbVar11 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" identifier = (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) ;) (if_statement "if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" if (parenthesized_expression "(apbStack_490[0] == (byte *)0x0)" ( (binary_expression "apbStack_490[0] == (byte *)0x0" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" { (if_statement "if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;" if (parenthesized_expression "(pbStack_9a0 == (byte *)0x0)" ( (binary_expression "pbStack_9a0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd68;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;) })) (expression_statement "pbVar13 = pbStack_9a0;" (assignment_expression "pbVar13 = pbStack_9a0" identifier = identifier) ;) (if_statement "if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;" if (parenthesized_expression "(*(int *)(pbVar11 + 0x128) << 0xb < 0)" ( (binary_expression "*(int *)(pbVar11 + 0x128) << 0xb < 0" (binary_expression "*(int *)(pbVar11 + 0x128) << 0xb" (pointer_expression "*(int *)(pbVar11 + 0x128)" * (cast_expression "(int *)(pbVar11 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x128)" ( (binary_expression "pbVar11 + 0x128" identifier + number_literal) )))) << number_literal) < number_literal) )) (goto_statement "goto LAB_0002cd44;" goto statement_identifier ;)) (expression_statement "iVar15 = *(int *)(pcVar29 + 0x268ac);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar24 = (byte *)(iVar15 + 0x674);" (assignment_expression "pbVar24 = (byte *)(iVar15 + 0x674)" identifier = (cast_expression "(byte *)(iVar15 + 0x674)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x674)" ( (binary_expression "iVar15 + 0x674" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) })) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" identifier (argument_list "(pbVar11,apbStack_490[0])" ( identifier , (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) ))) ;) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) }) (else_clause "else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" else (compound_statement "{\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" { (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" * (cast_expression "(int *)(pbVar11 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (labeled_statement "LAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);" statement_identifier : (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" identifier = (pointer_expression "*(byte **)(pbVar11 + 0x14c)" * (cast_expression "(byte **)(pbVar11 + 0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" identifier = (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) }))) (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x730)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x730" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) }))) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) })) (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);" (call_expression "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x237c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) }) (else_clause "else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" else (compound_statement "{\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);" (call_expression "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x68c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" statement_identifier : (while_statement "while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" { (if_statement "if (iStack_4c4 == *piVar21) {\n      return;\n    }" if (parenthesized_expression "(iStack_4c4 == *piVar21)" ( (binary_expression "iStack_4c4 == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar29 + 0x26d14))();" (call_expression "(**(code **)(pcVar29 + 0x26d14))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d14))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d14)" * (pointer_expression "*(code **)(pcVar29 + 0x26d14)" * (cast_expression "(code **)(pcVar29 + 0x26d14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d14)" ( (binary_expression "pcVar29 + 0x26d14" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar24 = unaff_s2;" (assignment_expression "pbVar24 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s8 = pbVar11;" (assignment_expression "unaff_s8 = pbVar11" identifier = identifier) ;) (labeled_statement "LAB_0002cd34:\n    pbVar11 = unaff_s8;" statement_identifier : (expression_statement "pbVar11 = unaff_s8;" (assignment_expression "pbVar11 = unaff_s8" identifier = identifier) ;)) (expression_statement "pbVar17 = pbVar13;" (assignment_expression "pbVar17 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();" (assignment_expression "pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))()" identifier = (cast_expression "(byte *)(**(code **)(pcVar29 + 0x26dac))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x26dac))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x26dac))" ( (pointer_expression "**(code **)(pcVar29 + 0x26dac)" * (pointer_expression "*(code **)(pcVar29 + 0x26dac)" * (cast_expression "(code **)(pcVar29 + 0x26dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26dac)" ( (binary_expression "pcVar29 + 0x26dac" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;" statement_identifier : (if_statement "if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;))) (expression_statement "(**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);" (call_expression "(**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26bf8))" ( (pointer_expression "**(code **)(pcVar29 + 0x26bf8)" * (pointer_expression "*(code **)(pcVar29 + 0x26bf8)" * (cast_expression "(code **)(pcVar29 + 0x26bf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26bf8)" ( (binary_expression "pcVar29 + 0x26bf8" identifier + number_literal) ))))) )) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x674" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);" statement_identifier : (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" identifier (argument_list "(pbVar11,apbStack_490[0])" ( identifier , (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "pbVar19 = pbVar16;" (assignment_expression "pbVar19 = pbVar16" identifier = identifier) ;) (expression_statement "FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));" (call_expression "FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164))" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(pbVar11 + 0x164)" * (cast_expression "(undefined4 *)(pbVar11 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x164)" ( (binary_expression "pbVar11 + 0x164" identifier + number_literal) )))) ))) ;) (if_statement "if (pbVar17 != (byte *)0x0) break;" if (parenthesized_expression "(pbVar17 != (byte *)0x0)" ( (binary_expression "pbVar17 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0002ce24:\n    pbVar11[0x130] = 0;" statement_identifier : (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) }))) (expression_statement "pbVar19 = (byte *)0x10;" (assignment_expression "pbVar19 = (byte *)0x10" identifier = (cast_expression "(byte *)0x10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);" (call_expression "(**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26bd0))" ( (pointer_expression "**(code **)(pcVar29 + 0x26bd0)" * (pointer_expression "*(code **)(pcVar29 + 0x26bd0)" * (cast_expression "(code **)(pcVar29 + 0x26bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26bd0)" ( (binary_expression "pcVar29 + 0x26bd0" identifier + number_literal) ))))) )) (argument_list "(pbVar11,pbVar17,0x10,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar15 = FUN_0001c240(pbVar11,unaff_s6);" (assignment_expression "iVar15 = FUN_0001c240(pbVar11,unaff_s6)" identifier = (call_expression "FUN_0001c240(pbVar11,unaff_s6)" identifier (argument_list "(pbVar11,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "*(int *)(pbVar17 + 0x74) = iVar15;" (assignment_expression "*(int *)(pbVar17 + 0x74) = iVar15" (pointer_expression "*(int *)(pbVar17 + 0x74)" * (cast_expression "(int *)(pbVar17 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0x74)" ( (binary_expression "pbVar17 + 0x74" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }" { (expression_statement "(**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);" (call_expression "(**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d54))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d54)" * (pointer_expression "*(code **)(pcVar29 + 0x26d54)" * (cast_expression "(code **)(pcVar29 + 0x26d54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d54)" ( (binary_expression "pcVar29 + 0x26d54" identifier + number_literal) ))))) )) (argument_list "(iVar15,pbVar24,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = *(uint *)(pbVar17 + 0xf4);" (assignment_expression "uVar10 = *(uint *)(pbVar17 + 0xf4)" identifier = (pointer_expression "*(uint *)(pbVar17 + 0xf4)" * (cast_expression "(uint *)(pbVar17 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0xf4)" ( (binary_expression "pbVar17 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(pbVar17 + 8);" (assignment_expression "uVar3 = *(uint *)(pbVar17 + 8)" identifier = (pointer_expression "*(uint *)(pbVar17 + 8)" * (cast_expression "(uint *)(pbVar17 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 8)" ( (binary_expression "pbVar17 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar17 + 0x78) = pbVar16;" (assignment_expression "*(byte **)(pbVar17 + 0x78) = pbVar16" (pointer_expression "*(byte **)(pbVar17 + 0x78)" * (cast_expression "(byte **)(pbVar17 + 0x78)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar17 + 0x78)" ( (binary_expression "pbVar17 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar17 + 0x7c) = pbStack_9c0;" (assignment_expression "*(byte **)(pbVar17 + 0x7c) = pbStack_9c0" (pointer_expression "*(byte **)(pbVar17 + 0x7c)" * (cast_expression "(byte **)(pbVar17 + 0x7c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar17 + 0x7c)" ( (binary_expression "pbVar17 + 0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar11[0x374] = 0;" (assignment_expression "pbVar11[0x374] = 0" (subscript_expression "pbVar11[0x374]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x375] = 0;" (assignment_expression "pbVar11[0x375] = 0" (subscript_expression "pbVar11[0x375]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x376] = 0;" (assignment_expression "pbVar11[0x376] = 0" (subscript_expression "pbVar11[0x376]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x377] = 0;" (assignment_expression "pbVar11[0x377] = 0" (subscript_expression "pbVar11[0x377]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;" (assignment_expression "*(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10" (pointer_expression "*(uint *)(pbVar17 + 0xf4)" * (cast_expression "(uint *)(pbVar17 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0xf4)" ( (binary_expression "pbVar17 + 0xf4" identifier + number_literal) )))) = (binary_expression "uVar10 | 0x10" identifier | number_literal)) ;) (expression_statement "*(uint *)(pbVar17 + 8) = uVar3 | 0x1000;" (assignment_expression "*(uint *)(pbVar17 + 8) = uVar3 | 0x1000" (pointer_expression "*(uint *)(pbVar17 + 8)" * (cast_expression "(uint *)(pbVar17 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 8)" ( (binary_expression "pbVar17 + 8" identifier + number_literal) )))) = (binary_expression "uVar3 | 0x1000" identifier | number_literal)) ;) (expression_statement "pbVar19 = pbStack_9c0;" (assignment_expression "pbVar19 = pbStack_9c0" identifier = identifier) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002ce24;" goto statement_identifier ;) })) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + -0x184)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + -0x184" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x26d2c);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002c938;" goto statement_identifier ;) (labeled_statement "LAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);" statement_identifier : (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" identifier = (pointer_expression "*(byte **)(pbVar11 + 0x14c)" * (cast_expression "(byte **)(pbVar11 + 0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);" statement_identifier : (expression_statement "FUN_0002b068(pbVar11,pbVar19);" (call_expression "FUN_0002b068(pbVar11,pbVar19)" identifier (argument_list "(pbVar11,pbVar19)" ( identifier , identifier ))) ;)) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) (if_statement "if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }" if (parenthesized_expression "(pbVar24 != (byte *)0x0)" ( (binary_expression "pbVar24 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }" { (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x26d2c);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);" statement_identifier : (expression_statement "(*pcVar28)(pbVar11,pbVar24);" (call_expression "(*pcVar28)(pbVar11,pbVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(pbVar11,pbVar24)" ( identifier , identifier ))) ;)) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) })) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nvoid png_handle_PLTE(png_structrp png_ptr,png_inforp info_ptr,png_uint_32 length)\n\n{\n  ushort uVar1;\n  __jmp_buf_tag *p_Var2;\n  undefined *puVar3;\n  uint uVar4;\n  png_structrp ppVar5;\n  png_fixed_point pVar6;\n  png_fixed_point pVar7;\n  undefined1 *puVar8;\n  undefined1 *puVar9;\n  png_fixed_point pVar10;\n  png_fixed_point pVar11;\n  png_fixed_point pVar12;\n  png_structrp ppVar13;\n  char *pcVar14;\n  int iVar15;\n  png_byte **pppVar16;\n  png_voidp pvVar17;\n  jmp_buf *pa_Var18;\n  png_uint_32 pVar19;\n  int iVar20;\n  png_structrp ppVar21;\n  png_structrp ppVar22;\n  png_const_bytep ppVar23;\n  png_structrp info_ptr_00;\n  png_uint_32 pVar24;\n  int iVar25;\n  void *pvVar26;\n  png_structrp ppVar27;\n  png_structrp unaff_s0;\n  png_structrp unaff_s1;\n  int *piVar28;\n  int *piVar29;\n  png_structrp unaff_s2;\n  png_structrp ppVar30;\n  png_const_bytep ppVar31;\n  png_structrp ppVar32;\n  byte *unaff_s5;\n  ulong *read_buffer;\n  png_structrp unaff_s6;\n  png_bytep unaff_s7;\n  undefined *puVar33;\n  code *pcVar34;\n  png_structrp unaff_s8;\n  code *pcVar35;\n  code *pcVar36;\n  code *pcVar37;\n  png_alloc_size_t *in_stack_fffff634;\n  png_structrp ppStack_9c0;\n  png_colorspacerp ppStack_9b4;\n  png_byte **pppStack_9a0;\n  png_struct pStack_99c;\n  int iStack_4c4;\n  png_structrp ppStack_4c0;\n  png_structrp ppStack_4bc;\n  png_structrp ppStack_4b8;\n  png_structrp ppStack_4b4;\n  png_structrp ppStack_4b0;\n  byte *pbStack_4ac;\n  png_structrp ppStack_4a8;\n  png_bytep ppStack_4a4;\n  png_structrp ppStack_4a0;\n  code *pcStack_49c;\n  png_structrp appStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  void *pvStack_47c;\n  png_structrp ppStack_478;\n  int *piStack_474;\n  png_structrp ppStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  undefined1 *puStack_44c;\n  undefined1 *puStack_448;\n  png_fixed_point pStack_444;\n  png_fixed_point pStack_440;\n  png_fixed_point pStack_43c;\n  png_fixed_point pStack_438;\n  png_fixed_point pStack_434;\n  png_fixed_point pStack_430;\n  void *pvStack_40c;\n  png_structrp ppStack_404;\n  int *piStack_400;\n  png_structrp ppStack_3fc;\n  png_structrp ppStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  void *pvStack_3d4;\n  png_structrp ppStack_3cc;\n  int *piStack_3c8;\n  png_structrp ppStack_3c4;\n  png_structrp ppStack_3c0;\n  png_inforp ppStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  png_structrp ppStack_3a8;\n  code *pcStack_3a0;\n  void *pvStack_394;\n  png_structrp ppStack_38c;\n  png_structrp ppStack_388;\n  png_structrp ppStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  png_structrp ppStack_35c;\n  png_structrp ppStack_358;\n  code *pcStack_354;\n  jmp_buf *local_334;\n  png_color palette [256];\n  png_byte buf [3];\n  \n  ppVar32 = (png_structrp)PTR___stack_chk_guard_000534bc;\n  uVar4 = png_ptr->mode;\n  iVar20 = *(int *)PTR___stack_chk_guard_000534bc;\n  ppVar27 = (png_structrp)length;\n  if ((uVar4 & 1) == 0) {\nLAB_0002bebc:\n    length = (png_uint_32)unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    ppVar13 = png_ptr;\n    if ((uVar4 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = png_ptr;\n    if ((uVar4 & 4) != 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }\n    png_ptr->mode = uVar4 | 2;\n    if ((png_ptr->color_type & 2) == 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (png_structrp)0xaaaa0000;\n    if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    png_crc_finish(png_ptr,length);\n    if (png_ptr->color_type != '\x03') {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar35 = png_handle_IEND;\n  puVar33 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar33 + 0x2f114;\n  ppStack_35c = unaff_s0;\n  ppStack_358 = unaff_s1;\n  pcStack_354 = pcVar35;\n  if ((png_ptr->mode & 5) == 5) {\n    png_ptr->mode = png_ptr->mode | 0x18;\n    png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n    if (ppVar27 != (png_structrp)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar34 = *(code **)(puVar33 + 0x27640);\n  pcVar36 = png_handle_gAMA;\n  ppVar21 = (png_structrp)(*(int *)(puVar33 + 0x27140) + 0x68c);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2f078;\n  piVar28 = *(int **)(pcVar34 + 0x27544);\n  puStack_380 = (undefined *)ppVar32;\n  pvStack_394 = (void *)*piVar28;\n  ppVar13 = png_ptr;\n  ppStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar35;\n  ppStack_38c = unaff_s0;\n  ppStack_388 = unaff_s1;\n  ppStack_384 = unaff_s2;\n  pcStack_37c = pcVar36;\n  if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar35 = pcStack_3a0;\n    if (pvStack_394 == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    ppStack_3cc = png_ptr;\n    unaff_s2 = ppVar21;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_sBIT;\n  ppVar22 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2ef14;\n  piVar29 = *(int **)(pcVar34 + 0x273e0);\n  pvStack_3d4 = (void *)*piVar29;\n  ppVar21 = ppVar13;\n  ppStack_404 = ppStack_3cc;\n  pcStack_3e0 = pcVar35;\n  piStack_3c8 = piVar28;\n  ppStack_3c4 = unaff_s2;\n  ppStack_3c0 = ppVar32;\n  ppStack_3bc = info_ptr;\n  pbStack_3b8 = (byte *)length;\n  pcStack_3b4 = pcVar36;\n  if ((ppVar13->mode & 1) != 0) {\n    if ((ppVar13->mode & 6) == 0) {\n      if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar35 = pcStack_3e0;\n    if (pvStack_3d4 == (void *)*piVar29) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    ppStack_404 = ppVar13;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_cHRM;\n  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2eca8;\n  piVar28 = *(int **)(pcVar34 + 0x27174);\n  pvStack_40c = (void *)*piVar28;\n  ppVar32 = ppVar21;\n  ppVar13 = ppStack_404;\n  pcStack_458 = pcVar35;\n  piStack_400 = piVar29;\n  ppStack_3fc = unaff_s2;\n  ppStack_3f8 = ppVar22;\n  pcStack_3f4 = pcVar36;\n  if ((ppVar21->mode & 1) != 0) {\n    if ((ppVar21->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar35 = pcStack_458;\n    if (pvStack_40c == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    ppVar13 = ppVar21;\n    unaff_s2 = ppVar30;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_sRGB;\n  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2ea14;\n  ppVar21 = *(png_structrp *)(pcVar34 + 0x26ee0);\n  pvStack_47c = ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n  pcStack_488 = pcVar35;\n  ppStack_478 = ppVar13;\n  piStack_474 = piVar28;\n  ppStack_470 = unaff_s2;\n  pcStack_46c = pcVar36;\n  if ((ppVar32->mode & 1) == 0) {\n    info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar34 + 0x26f40))();\n    ppVar5 = ppVar32;\n  }\n  else {\n    ppVar5 = ppVar32;\n    if ((ppVar32->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    ppVar13 = ppVar32;\n    unaff_s2 = ppVar30;\n    pcVar35 = pcStack_488;\n    if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {\n      return;\n    }\n  }\n  pcVar36 = *(code **)(pcVar35 + -0x7b6c);\n  pcVar37 = png_handle_iCCP;\n  (*pcVar36)();\n  pcVar34 = pcVar36 + 0x2e880;\n  piVar28 = *(int **)(pcVar36 + 0x26d4c);\n  ppVar30 = (png_structrp)(ppVar5->mode & 1);\n  iStack_4c4 = *piVar28;\n  ppVar32 = unaff_s2;\n  pcVar35 = pcVar34;\n  ppStack_4c0 = ppVar13;\n  ppStack_4bc = ppVar21;\n  ppStack_4b8 = unaff_s2;\n  ppStack_4b4 = ppVar22;\n  ppStack_4b0 = (png_structrp)info_ptr;\n  pbStack_4ac = (byte *)length;\n  ppStack_4a8 = unaff_s6;\n  ppStack_4a4 = unaff_s7;\n  ppStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar37;\n  appStack_490[0] = ppVar27;\n  if (ppVar30 == (png_structrp)0x0) goto LAB_0002cd34;\n  if ((ppVar5->mode & 6) != 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }\n  if (ppVar27 < (png_structrp)0xe) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }\n  uVar1 = (ppVar5->colorspace).flags;\n  if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    goto LAB_0002c8bc;\n  }\n  if ((uVar1 & 4) == 0) {\n    ppVar13 = (png_structrp)0x51;\n    if (ppVar27 < (png_structrp)0x51) {\n      ppVar13 = ppVar27;\n    }\n    ppVar32 = &pStack_99c;\n    ppVar27 = ppVar13;\n    png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13);\n    appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13);\n    if (appStack_490[0] < (png_structrp)0xb) {\n      FUN_0002c94c(ppVar5);\n      return;\n    }\n    pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n    if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);\n  }\nLAB_0002c900:\n  png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n  (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n  png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\nLAB_0002c934:\n  pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  do {\n    (*pcVar35)(ppVar5,ppVar32);\n    unaff_s2 = ppVar32;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    } while (ppVar32 == (png_structrp)0x0);\n    pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  } while( true );\n}\n\n" comment (function_definition "void png_handle_PLTE(png_structrp png_ptr,png_inforp info_ptr,png_uint_32 length)\n\n{\n  ushort uVar1;\n  __jmp_buf_tag *p_Var2;\n  undefined *puVar3;\n  uint uVar4;\n  png_structrp ppVar5;\n  png_fixed_point pVar6;\n  png_fixed_point pVar7;\n  undefined1 *puVar8;\n  undefined1 *puVar9;\n  png_fixed_point pVar10;\n  png_fixed_point pVar11;\n  png_fixed_point pVar12;\n  png_structrp ppVar13;\n  char *pcVar14;\n  int iVar15;\n  png_byte **pppVar16;\n  png_voidp pvVar17;\n  jmp_buf *pa_Var18;\n  png_uint_32 pVar19;\n  int iVar20;\n  png_structrp ppVar21;\n  png_structrp ppVar22;\n  png_const_bytep ppVar23;\n  png_structrp info_ptr_00;\n  png_uint_32 pVar24;\n  int iVar25;\n  void *pvVar26;\n  png_structrp ppVar27;\n  png_structrp unaff_s0;\n  png_structrp unaff_s1;\n  int *piVar28;\n  int *piVar29;\n  png_structrp unaff_s2;\n  png_structrp ppVar30;\n  png_const_bytep ppVar31;\n  png_structrp ppVar32;\n  byte *unaff_s5;\n  ulong *read_buffer;\n  png_structrp unaff_s6;\n  png_bytep unaff_s7;\n  undefined *puVar33;\n  code *pcVar34;\n  png_structrp unaff_s8;\n  code *pcVar35;\n  code *pcVar36;\n  code *pcVar37;\n  png_alloc_size_t *in_stack_fffff634;\n  png_structrp ppStack_9c0;\n  png_colorspacerp ppStack_9b4;\n  png_byte **pppStack_9a0;\n  png_struct pStack_99c;\n  int iStack_4c4;\n  png_structrp ppStack_4c0;\n  png_structrp ppStack_4bc;\n  png_structrp ppStack_4b8;\n  png_structrp ppStack_4b4;\n  png_structrp ppStack_4b0;\n  byte *pbStack_4ac;\n  png_structrp ppStack_4a8;\n  png_bytep ppStack_4a4;\n  png_structrp ppStack_4a0;\n  code *pcStack_49c;\n  png_structrp appStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  void *pvStack_47c;\n  png_structrp ppStack_478;\n  int *piStack_474;\n  png_structrp ppStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  undefined1 *puStack_44c;\n  undefined1 *puStack_448;\n  png_fixed_point pStack_444;\n  png_fixed_point pStack_440;\n  png_fixed_point pStack_43c;\n  png_fixed_point pStack_438;\n  png_fixed_point pStack_434;\n  png_fixed_point pStack_430;\n  void *pvStack_40c;\n  png_structrp ppStack_404;\n  int *piStack_400;\n  png_structrp ppStack_3fc;\n  png_structrp ppStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  void *pvStack_3d4;\n  png_structrp ppStack_3cc;\n  int *piStack_3c8;\n  png_structrp ppStack_3c4;\n  png_structrp ppStack_3c0;\n  png_inforp ppStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  png_structrp ppStack_3a8;\n  code *pcStack_3a0;\n  void *pvStack_394;\n  png_structrp ppStack_38c;\n  png_structrp ppStack_388;\n  png_structrp ppStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  png_structrp ppStack_35c;\n  png_structrp ppStack_358;\n  code *pcStack_354;\n  jmp_buf *local_334;\n  png_color palette [256];\n  png_byte buf [3];\n  \n  ppVar32 = (png_structrp)PTR___stack_chk_guard_000534bc;\n  uVar4 = png_ptr->mode;\n  iVar20 = *(int *)PTR___stack_chk_guard_000534bc;\n  ppVar27 = (png_structrp)length;\n  if ((uVar4 & 1) == 0) {\nLAB_0002bebc:\n    length = (png_uint_32)unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    ppVar13 = png_ptr;\n    if ((uVar4 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = png_ptr;\n    if ((uVar4 & 4) != 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }\n    png_ptr->mode = uVar4 | 2;\n    if ((png_ptr->color_type & 2) == 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (png_structrp)0xaaaa0000;\n    if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    png_crc_finish(png_ptr,length);\n    if (png_ptr->color_type != '\x03') {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar35 = png_handle_IEND;\n  puVar33 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar33 + 0x2f114;\n  ppStack_35c = unaff_s0;\n  ppStack_358 = unaff_s1;\n  pcStack_354 = pcVar35;\n  if ((png_ptr->mode & 5) == 5) {\n    png_ptr->mode = png_ptr->mode | 0x18;\n    png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n    if (ppVar27 != (png_structrp)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar34 = *(code **)(puVar33 + 0x27640);\n  pcVar36 = png_handle_gAMA;\n  ppVar21 = (png_structrp)(*(int *)(puVar33 + 0x27140) + 0x68c);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2f078;\n  piVar28 = *(int **)(pcVar34 + 0x27544);\n  puStack_380 = (undefined *)ppVar32;\n  pvStack_394 = (void *)*piVar28;\n  ppVar13 = png_ptr;\n  ppStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar35;\n  ppStack_38c = unaff_s0;\n  ppStack_388 = unaff_s1;\n  ppStack_384 = unaff_s2;\n  pcStack_37c = pcVar36;\n  if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar35 = pcStack_3a0;\n    if (pvStack_394 == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    ppStack_3cc = png_ptr;\n    unaff_s2 = ppVar21;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_sBIT;\n  ppVar22 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2ef14;\n  piVar29 = *(int **)(pcVar34 + 0x273e0);\n  pvStack_3d4 = (void *)*piVar29;\n  ppVar21 = ppVar13;\n  ppStack_404 = ppStack_3cc;\n  pcStack_3e0 = pcVar35;\n  piStack_3c8 = piVar28;\n  ppStack_3c4 = unaff_s2;\n  ppStack_3c0 = ppVar32;\n  ppStack_3bc = info_ptr;\n  pbStack_3b8 = (byte *)length;\n  pcStack_3b4 = pcVar36;\n  if ((ppVar13->mode & 1) != 0) {\n    if ((ppVar13->mode & 6) == 0) {\n      if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar35 = pcStack_3e0;\n    if (pvStack_3d4 == (void *)*piVar29) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    ppStack_404 = ppVar13;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_cHRM;\n  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2eca8;\n  piVar28 = *(int **)(pcVar34 + 0x27174);\n  pvStack_40c = (void *)*piVar28;\n  ppVar32 = ppVar21;\n  ppVar13 = ppStack_404;\n  pcStack_458 = pcVar35;\n  piStack_400 = piVar29;\n  ppStack_3fc = unaff_s2;\n  ppStack_3f8 = ppVar22;\n  pcStack_3f4 = pcVar36;\n  if ((ppVar21->mode & 1) != 0) {\n    if ((ppVar21->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar35 = pcStack_458;\n    if (pvStack_40c == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    ppVar13 = ppVar21;\n    unaff_s2 = ppVar30;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_sRGB;\n  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2ea14;\n  ppVar21 = *(png_structrp *)(pcVar34 + 0x26ee0);\n  pvStack_47c = ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n  pcStack_488 = pcVar35;\n  ppStack_478 = ppVar13;\n  piStack_474 = piVar28;\n  ppStack_470 = unaff_s2;\n  pcStack_46c = pcVar36;\n  if ((ppVar32->mode & 1) == 0) {\n    info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar34 + 0x26f40))();\n    ppVar5 = ppVar32;\n  }\n  else {\n    ppVar5 = ppVar32;\n    if ((ppVar32->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    ppVar13 = ppVar32;\n    unaff_s2 = ppVar30;\n    pcVar35 = pcStack_488;\n    if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {\n      return;\n    }\n  }\n  pcVar36 = *(code **)(pcVar35 + -0x7b6c);\n  pcVar37 = png_handle_iCCP;\n  (*pcVar36)();\n  pcVar34 = pcVar36 + 0x2e880;\n  piVar28 = *(int **)(pcVar36 + 0x26d4c);\n  ppVar30 = (png_structrp)(ppVar5->mode & 1);\n  iStack_4c4 = *piVar28;\n  ppVar32 = unaff_s2;\n  pcVar35 = pcVar34;\n  ppStack_4c0 = ppVar13;\n  ppStack_4bc = ppVar21;\n  ppStack_4b8 = unaff_s2;\n  ppStack_4b4 = ppVar22;\n  ppStack_4b0 = (png_structrp)info_ptr;\n  pbStack_4ac = (byte *)length;\n  ppStack_4a8 = unaff_s6;\n  ppStack_4a4 = unaff_s7;\n  ppStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar37;\n  appStack_490[0] = ppVar27;\n  if (ppVar30 == (png_structrp)0x0) goto LAB_0002cd34;\n  if ((ppVar5->mode & 6) != 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }\n  if (ppVar27 < (png_structrp)0xe) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }\n  uVar1 = (ppVar5->colorspace).flags;\n  if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    goto LAB_0002c8bc;\n  }\n  if ((uVar1 & 4) == 0) {\n    ppVar13 = (png_structrp)0x51;\n    if (ppVar27 < (png_structrp)0x51) {\n      ppVar13 = ppVar27;\n    }\n    ppVar32 = &pStack_99c;\n    ppVar27 = ppVar13;\n    png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13);\n    appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13);\n    if (appStack_490[0] < (png_structrp)0xb) {\n      FUN_0002c94c(ppVar5);\n      return;\n    }\n    pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n    if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);\n  }\nLAB_0002c900:\n  png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n  (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n  png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\nLAB_0002c934:\n  pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  do {\n    (*pcVar35)(ppVar5,ppVar32);\n    unaff_s2 = ppVar32;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    } while (ppVar32 == (png_structrp)0x0);\n    pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  } while( true );\n}" primitive_type (function_declarator "png_handle_PLTE(png_structrp png_ptr,png_inforp info_ptr,png_uint_32 length)" identifier (parameter_list "(png_structrp png_ptr,png_inforp info_ptr,png_uint_32 length)" ( (parameter_declaration "png_structrp png_ptr" type_identifier identifier) , (parameter_declaration "png_inforp info_ptr" type_identifier identifier) , (parameter_declaration "png_uint_32 length" type_identifier identifier) ))) (compound_statement "{\n  ushort uVar1;\n  __jmp_buf_tag *p_Var2;\n  undefined *puVar3;\n  uint uVar4;\n  png_structrp ppVar5;\n  png_fixed_point pVar6;\n  png_fixed_point pVar7;\n  undefined1 *puVar8;\n  undefined1 *puVar9;\n  png_fixed_point pVar10;\n  png_fixed_point pVar11;\n  png_fixed_point pVar12;\n  png_structrp ppVar13;\n  char *pcVar14;\n  int iVar15;\n  png_byte **pppVar16;\n  png_voidp pvVar17;\n  jmp_buf *pa_Var18;\n  png_uint_32 pVar19;\n  int iVar20;\n  png_structrp ppVar21;\n  png_structrp ppVar22;\n  png_const_bytep ppVar23;\n  png_structrp info_ptr_00;\n  png_uint_32 pVar24;\n  int iVar25;\n  void *pvVar26;\n  png_structrp ppVar27;\n  png_structrp unaff_s0;\n  png_structrp unaff_s1;\n  int *piVar28;\n  int *piVar29;\n  png_structrp unaff_s2;\n  png_structrp ppVar30;\n  png_const_bytep ppVar31;\n  png_structrp ppVar32;\n  byte *unaff_s5;\n  ulong *read_buffer;\n  png_structrp unaff_s6;\n  png_bytep unaff_s7;\n  undefined *puVar33;\n  code *pcVar34;\n  png_structrp unaff_s8;\n  code *pcVar35;\n  code *pcVar36;\n  code *pcVar37;\n  png_alloc_size_t *in_stack_fffff634;\n  png_structrp ppStack_9c0;\n  png_colorspacerp ppStack_9b4;\n  png_byte **pppStack_9a0;\n  png_struct pStack_99c;\n  int iStack_4c4;\n  png_structrp ppStack_4c0;\n  png_structrp ppStack_4bc;\n  png_structrp ppStack_4b8;\n  png_structrp ppStack_4b4;\n  png_structrp ppStack_4b0;\n  byte *pbStack_4ac;\n  png_structrp ppStack_4a8;\n  png_bytep ppStack_4a4;\n  png_structrp ppStack_4a0;\n  code *pcStack_49c;\n  png_structrp appStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  void *pvStack_47c;\n  png_structrp ppStack_478;\n  int *piStack_474;\n  png_structrp ppStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  undefined1 *puStack_44c;\n  undefined1 *puStack_448;\n  png_fixed_point pStack_444;\n  png_fixed_point pStack_440;\n  png_fixed_point pStack_43c;\n  png_fixed_point pStack_438;\n  png_fixed_point pStack_434;\n  png_fixed_point pStack_430;\n  void *pvStack_40c;\n  png_structrp ppStack_404;\n  int *piStack_400;\n  png_structrp ppStack_3fc;\n  png_structrp ppStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  void *pvStack_3d4;\n  png_structrp ppStack_3cc;\n  int *piStack_3c8;\n  png_structrp ppStack_3c4;\n  png_structrp ppStack_3c0;\n  png_inforp ppStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  png_structrp ppStack_3a8;\n  code *pcStack_3a0;\n  void *pvStack_394;\n  png_structrp ppStack_38c;\n  png_structrp ppStack_388;\n  png_structrp ppStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  png_structrp ppStack_35c;\n  png_structrp ppStack_358;\n  code *pcStack_354;\n  jmp_buf *local_334;\n  png_color palette [256];\n  png_byte buf [3];\n  \n  ppVar32 = (png_structrp)PTR___stack_chk_guard_000534bc;\n  uVar4 = png_ptr->mode;\n  iVar20 = *(int *)PTR___stack_chk_guard_000534bc;\n  ppVar27 = (png_structrp)length;\n  if ((uVar4 & 1) == 0) {\nLAB_0002bebc:\n    length = (png_uint_32)unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    ppVar13 = png_ptr;\n    if ((uVar4 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = png_ptr;\n    if ((uVar4 & 4) != 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }\n    png_ptr->mode = uVar4 | 2;\n    if ((png_ptr->color_type & 2) == 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (png_structrp)0xaaaa0000;\n    if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    png_crc_finish(png_ptr,length);\n    if (png_ptr->color_type != '\x03') {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar35 = png_handle_IEND;\n  puVar33 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar33 + 0x2f114;\n  ppStack_35c = unaff_s0;\n  ppStack_358 = unaff_s1;\n  pcStack_354 = pcVar35;\n  if ((png_ptr->mode & 5) == 5) {\n    png_ptr->mode = png_ptr->mode | 0x18;\n    png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n    if (ppVar27 != (png_structrp)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar34 = *(code **)(puVar33 + 0x27640);\n  pcVar36 = png_handle_gAMA;\n  ppVar21 = (png_structrp)(*(int *)(puVar33 + 0x27140) + 0x68c);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2f078;\n  piVar28 = *(int **)(pcVar34 + 0x27544);\n  puStack_380 = (undefined *)ppVar32;\n  pvStack_394 = (void *)*piVar28;\n  ppVar13 = png_ptr;\n  ppStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar35;\n  ppStack_38c = unaff_s0;\n  ppStack_388 = unaff_s1;\n  ppStack_384 = unaff_s2;\n  pcStack_37c = pcVar36;\n  if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar35 = pcStack_3a0;\n    if (pvStack_394 == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    ppStack_3cc = png_ptr;\n    unaff_s2 = ppVar21;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_sBIT;\n  ppVar22 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2ef14;\n  piVar29 = *(int **)(pcVar34 + 0x273e0);\n  pvStack_3d4 = (void *)*piVar29;\n  ppVar21 = ppVar13;\n  ppStack_404 = ppStack_3cc;\n  pcStack_3e0 = pcVar35;\n  piStack_3c8 = piVar28;\n  ppStack_3c4 = unaff_s2;\n  ppStack_3c0 = ppVar32;\n  ppStack_3bc = info_ptr;\n  pbStack_3b8 = (byte *)length;\n  pcStack_3b4 = pcVar36;\n  if ((ppVar13->mode & 1) != 0) {\n    if ((ppVar13->mode & 6) == 0) {\n      if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar35 = pcStack_3e0;\n    if (pvStack_3d4 == (void *)*piVar29) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    ppStack_404 = ppVar13;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_cHRM;\n  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2eca8;\n  piVar28 = *(int **)(pcVar34 + 0x27174);\n  pvStack_40c = (void *)*piVar28;\n  ppVar32 = ppVar21;\n  ppVar13 = ppStack_404;\n  pcStack_458 = pcVar35;\n  piStack_400 = piVar29;\n  ppStack_3fc = unaff_s2;\n  ppStack_3f8 = ppVar22;\n  pcStack_3f4 = pcVar36;\n  if ((ppVar21->mode & 1) != 0) {\n    if ((ppVar21->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar35 = pcStack_458;\n    if (pvStack_40c == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    ppVar13 = ppVar21;\n    unaff_s2 = ppVar30;\n  }\n  pcVar34 = *(code **)(pcVar35 + -0x7ad4);\n  pcVar36 = png_handle_sRGB;\n  ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);\n  (*pcVar34)();\n  pcVar35 = pcVar34 + 0x2ea14;\n  ppVar21 = *(png_structrp *)(pcVar34 + 0x26ee0);\n  pvStack_47c = ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n  pcStack_488 = pcVar35;\n  ppStack_478 = ppVar13;\n  piStack_474 = piVar28;\n  ppStack_470 = unaff_s2;\n  pcStack_46c = pcVar36;\n  if ((ppVar32->mode & 1) == 0) {\n    info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar34 + 0x26f40))();\n    ppVar5 = ppVar32;\n  }\n  else {\n    ppVar5 = ppVar32;\n    if ((ppVar32->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    ppVar13 = ppVar32;\n    unaff_s2 = ppVar30;\n    pcVar35 = pcStack_488;\n    if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {\n      return;\n    }\n  }\n  pcVar36 = *(code **)(pcVar35 + -0x7b6c);\n  pcVar37 = png_handle_iCCP;\n  (*pcVar36)();\n  pcVar34 = pcVar36 + 0x2e880;\n  piVar28 = *(int **)(pcVar36 + 0x26d4c);\n  ppVar30 = (png_structrp)(ppVar5->mode & 1);\n  iStack_4c4 = *piVar28;\n  ppVar32 = unaff_s2;\n  pcVar35 = pcVar34;\n  ppStack_4c0 = ppVar13;\n  ppStack_4bc = ppVar21;\n  ppStack_4b8 = unaff_s2;\n  ppStack_4b4 = ppVar22;\n  ppStack_4b0 = (png_structrp)info_ptr;\n  pbStack_4ac = (byte *)length;\n  ppStack_4a8 = unaff_s6;\n  ppStack_4a4 = unaff_s7;\n  ppStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar37;\n  appStack_490[0] = ppVar27;\n  if (ppVar30 == (png_structrp)0x0) goto LAB_0002cd34;\n  if ((ppVar5->mode & 6) != 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }\n  if (ppVar27 < (png_structrp)0xe) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }\n  uVar1 = (ppVar5->colorspace).flags;\n  if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    goto LAB_0002c8bc;\n  }\n  if ((uVar1 & 4) == 0) {\n    ppVar13 = (png_structrp)0x51;\n    if (ppVar27 < (png_structrp)0x51) {\n      ppVar13 = ppVar27;\n    }\n    ppVar32 = &pStack_99c;\n    ppVar27 = ppVar13;\n    png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13);\n    appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13);\n    if (appStack_490[0] < (png_structrp)0xb) {\n      FUN_0002c94c(ppVar5);\n      return;\n    }\n    pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n    if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);\n  }\nLAB_0002c900:\n  png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n  (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n  png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\nLAB_0002c934:\n  pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  do {\n    (*pcVar35)(ppVar5,ppVar32);\n    unaff_s2 = ppVar32;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    } while (ppVar32 == (png_structrp)0x0);\n    pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  } while( true );\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "__jmp_buf_tag *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "png_structrp ppVar5;" type_identifier identifier ;) (declaration "png_fixed_point pVar6;" type_identifier identifier ;) (declaration "png_fixed_point pVar7;" type_identifier identifier ;) (declaration "undefined1 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined1 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "png_fixed_point pVar10;" type_identifier identifier ;) (declaration "png_fixed_point pVar11;" type_identifier identifier ;) (declaration "png_fixed_point pVar12;" type_identifier identifier ;) (declaration "png_structrp ppVar13;" type_identifier identifier ;) (declaration "char *pcVar14;" primitive_type (pointer_declarator "*pcVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "png_byte **pppVar16;" type_identifier (pointer_declarator "**pppVar16" * (pointer_declarator "*pppVar16" * identifier)) ;) (declaration "png_voidp pvVar17;" type_identifier identifier ;) (declaration "jmp_buf *pa_Var18;" type_identifier (pointer_declarator "*pa_Var18" * identifier) ;) (declaration "png_uint_32 pVar19;" type_identifier identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "png_structrp ppVar21;" type_identifier identifier ;) (declaration "png_structrp ppVar22;" type_identifier identifier ;) (declaration "png_const_bytep ppVar23;" type_identifier identifier ;) (declaration "png_structrp info_ptr_00;" type_identifier identifier ;) (declaration "png_uint_32 pVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "void *pvVar26;" primitive_type (pointer_declarator "*pvVar26" * identifier) ;) (declaration "png_structrp ppVar27;" type_identifier identifier ;) (declaration "png_structrp unaff_s0;" type_identifier identifier ;) (declaration "png_structrp unaff_s1;" type_identifier identifier ;) (declaration "int *piVar28;" primitive_type (pointer_declarator "*piVar28" * identifier) ;) (declaration "int *piVar29;" primitive_type (pointer_declarator "*piVar29" * identifier) ;) (declaration "png_structrp unaff_s2;" type_identifier identifier ;) (declaration "png_structrp ppVar30;" type_identifier identifier ;) (declaration "png_const_bytep ppVar31;" type_identifier identifier ;) (declaration "png_structrp ppVar32;" type_identifier identifier ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "ulong *read_buffer;" type_identifier (pointer_declarator "*read_buffer" * identifier) ;) (declaration "png_structrp unaff_s6;" type_identifier identifier ;) (declaration "png_bytep unaff_s7;" type_identifier identifier ;) (declaration "undefined *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "png_structrp unaff_s8;" type_identifier identifier ;) (declaration "code *pcVar35;" type_identifier (pointer_declarator "*pcVar35" * identifier) ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "code *pcVar37;" type_identifier (pointer_declarator "*pcVar37" * identifier) ;) (declaration "png_alloc_size_t *in_stack_fffff634;" type_identifier (pointer_declarator "*in_stack_fffff634" * identifier) ;) (declaration "png_structrp ppStack_9c0;" type_identifier identifier ;) (declaration "png_colorspacerp ppStack_9b4;" type_identifier identifier ;) (declaration "png_byte **pppStack_9a0;" type_identifier (pointer_declarator "**pppStack_9a0" * (pointer_declarator "*pppStack_9a0" * identifier)) ;) (declaration "png_struct pStack_99c;" type_identifier identifier ;) (declaration "int iStack_4c4;" primitive_type identifier ;) (declaration "png_structrp ppStack_4c0;" type_identifier identifier ;) (declaration "png_structrp ppStack_4bc;" type_identifier identifier ;) (declaration "png_structrp ppStack_4b8;" type_identifier identifier ;) (declaration "png_structrp ppStack_4b4;" type_identifier identifier ;) (declaration "png_structrp ppStack_4b0;" type_identifier identifier ;) (declaration "byte *pbStack_4ac;" type_identifier (pointer_declarator "*pbStack_4ac" * identifier) ;) (declaration "png_structrp ppStack_4a8;" type_identifier identifier ;) (declaration "png_bytep ppStack_4a4;" type_identifier identifier ;) (declaration "png_structrp ppStack_4a0;" type_identifier identifier ;) (declaration "code *pcStack_49c;" type_identifier (pointer_declarator "*pcStack_49c" * identifier) ;) (declaration "png_structrp appStack_490 [2];" type_identifier (array_declarator "appStack_490 [2]" identifier [ number_literal ]) ;) (declaration "code *pcStack_488;" type_identifier (pointer_declarator "*pcStack_488" * identifier) ;) (declaration "byte bStack_47d;" type_identifier identifier ;) (declaration "void *pvStack_47c;" primitive_type (pointer_declarator "*pvStack_47c" * identifier) ;) (declaration "png_structrp ppStack_478;" type_identifier identifier ;) (declaration "int *piStack_474;" primitive_type (pointer_declarator "*piStack_474" * identifier) ;) (declaration "png_structrp ppStack_470;" type_identifier identifier ;) (declaration "code *pcStack_46c;" type_identifier (pointer_declarator "*pcStack_46c" * identifier) ;) (declaration "code *pcStack_458;" type_identifier (pointer_declarator "*pcStack_458" * identifier) ;) (declaration "undefined1 *puStack_44c;" type_identifier (pointer_declarator "*puStack_44c" * identifier) ;) (declaration "undefined1 *puStack_448;" type_identifier (pointer_declarator "*puStack_448" * identifier) ;) (declaration "png_fixed_point pStack_444;" type_identifier identifier ;) (declaration "png_fixed_point pStack_440;" type_identifier identifier ;) (declaration "png_fixed_point pStack_43c;" type_identifier identifier ;) (declaration "png_fixed_point pStack_438;" type_identifier identifier ;) (declaration "png_fixed_point pStack_434;" type_identifier identifier ;) (declaration "png_fixed_point pStack_430;" type_identifier identifier ;) (declaration "void *pvStack_40c;" primitive_type (pointer_declarator "*pvStack_40c" * identifier) ;) (declaration "png_structrp ppStack_404;" type_identifier identifier ;) (declaration "int *piStack_400;" primitive_type (pointer_declarator "*piStack_400" * identifier) ;) (declaration "png_structrp ppStack_3fc;" type_identifier identifier ;) (declaration "png_structrp ppStack_3f8;" type_identifier identifier ;) (declaration "code *pcStack_3f4;" type_identifier (pointer_declarator "*pcStack_3f4" * identifier) ;) (declaration "code *pcStack_3e0;" type_identifier (pointer_declarator "*pcStack_3e0" * identifier) ;) (declaration "byte abStack_3d8 [4];" type_identifier (array_declarator "abStack_3d8 [4]" identifier [ number_literal ]) ;) (declaration "void *pvStack_3d4;" primitive_type (pointer_declarator "*pvStack_3d4" * identifier) ;) (declaration "png_structrp ppStack_3cc;" type_identifier identifier ;) (declaration "int *piStack_3c8;" primitive_type (pointer_declarator "*piStack_3c8" * identifier) ;) (declaration "png_structrp ppStack_3c4;" type_identifier identifier ;) (declaration "png_structrp ppStack_3c0;" type_identifier identifier ;) (declaration "png_inforp ppStack_3bc;" type_identifier identifier ;) (declaration "byte *pbStack_3b8;" type_identifier (pointer_declarator "*pbStack_3b8" * identifier) ;) (declaration "code *pcStack_3b4;" type_identifier (pointer_declarator "*pcStack_3b4" * identifier) ;) (declaration "png_structrp ppStack_3a8;" type_identifier identifier ;) (declaration "code *pcStack_3a0;" type_identifier (pointer_declarator "*pcStack_3a0" * identifier) ;) (declaration "void *pvStack_394;" primitive_type (pointer_declarator "*pvStack_394" * identifier) ;) (declaration "png_structrp ppStack_38c;" type_identifier identifier ;) (declaration "png_structrp ppStack_388;" type_identifier identifier ;) (declaration "png_structrp ppStack_384;" type_identifier identifier ;) (declaration "undefined *puStack_380;" type_identifier (pointer_declarator "*puStack_380" * identifier) ;) (declaration "code *pcStack_37c;" type_identifier (pointer_declarator "*pcStack_37c" * identifier) ;) (declaration "undefined *puStack_368;" type_identifier (pointer_declarator "*puStack_368" * identifier) ;) (declaration "png_structrp ppStack_35c;" type_identifier identifier ;) (declaration "png_structrp ppStack_358;" type_identifier identifier ;) (declaration "code *pcStack_354;" type_identifier (pointer_declarator "*pcStack_354" * identifier) ;) (declaration "jmp_buf *local_334;" type_identifier (pointer_declarator "*local_334" * identifier) ;) (declaration "png_color palette [256];" type_identifier (array_declarator "palette [256]" identifier [ number_literal ]) ;) (declaration "png_byte buf [3];" type_identifier (array_declarator "buf [3]" identifier [ number_literal ]) ;) (expression_statement "ppVar32 = (png_structrp)PTR___stack_chk_guard_000534bc;" (assignment_expression "ppVar32 = (png_structrp)PTR___stack_chk_guard_000534bc" identifier = (cast_expression "(png_structrp)PTR___stack_chk_guard_000534bc" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "uVar4 = png_ptr->mode;" (assignment_expression "uVar4 = png_ptr->mode" identifier = (field_expression "png_ptr->mode" identifier -> field_identifier)) ;) (expression_statement "iVar20 = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "iVar20 = *(int *)PTR___stack_chk_guard_000534bc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000534bc" * (cast_expression "(int *)PTR___stack_chk_guard_000534bc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "ppVar27 = (png_structrp)length;" (assignment_expression "ppVar27 = (png_structrp)length" identifier = (cast_expression "(png_structrp)length" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (if_statement "if ((uVar4 & 1) == 0) {\nLAB_0002bebc:\n    length = (png_uint_32)unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    ppVar13 = png_ptr;\n    if ((uVar4 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = png_ptr;\n    if ((uVar4 & 4) != 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }\n    png_ptr->mode = uVar4 | 2;\n    if ((png_ptr->color_type & 2) == 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (png_structrp)0xaaaa0000;\n    if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    png_crc_finish(png_ptr,length);\n    if (png_ptr->color_type != '\x03') {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" if (parenthesized_expression "((uVar4 & 1) == 0)" ( (binary_expression "(uVar4 & 1) == 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0002bebc:\n    length = (png_uint_32)unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }" { (labeled_statement "LAB_0002bebc:\n    length = (png_uint_32)unaff_s5;" statement_identifier : (expression_statement "length = (png_uint_32)unaff_s5;" (assignment_expression "length = (png_uint_32)unaff_s5" identifier = (cast_expression "(png_uint_32)unaff_s5" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;)) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    ppVar13 = png_ptr;\n    if ((uVar4 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = png_ptr;\n    if ((uVar4 & 4) != 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }\n    png_ptr->mode = uVar4 | 2;\n    if ((png_ptr->color_type & 2) == 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (png_structrp)0xaaaa0000;\n    if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    png_crc_finish(png_ptr,length);\n    if (png_ptr->color_type != '\x03') {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" else (compound_statement "{\n    ppVar13 = png_ptr;\n    if ((uVar4 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = png_ptr;\n    if ((uVar4 & 4) != 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }\n    png_ptr->mode = uVar4 | 2;\n    if ((png_ptr->color_type & 2) == 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (png_structrp)0xaaaa0000;\n    if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    png_crc_finish(png_ptr,length);\n    if (png_ptr->color_type != '\x03') {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" { (expression_statement "ppVar13 = png_ptr;" (assignment_expression "ppVar13 = png_ptr" identifier = identifier) ;) (if_statement "if ((uVar4 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }" if (parenthesized_expression "((uVar4 & 2) != 0)" ( (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      png_ptr = ppVar13;\n      goto LAB_0002bebc;\n    }" { (labeled_statement "LAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();" statement_identifier : (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (expression_statement "png_ptr = ppVar13;" (assignment_expression "png_ptr = ppVar13" identifier = identifier) ;) (goto_statement "goto LAB_0002bebc;" goto statement_identifier ;) })) (expression_statement "unaff_s1 = png_ptr;" (assignment_expression "unaff_s1 = png_ptr" identifier = identifier) ;) (if_statement "if ((uVar4 & 4) != 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }" if (parenthesized_expression "((uVar4 & 4) != 0)" ( (binary_expression "(uVar4 & 4) != 0" (parenthesized_expression "(uVar4 & 4)" ( (binary_expression "uVar4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = (byte *)length;\n      goto LAB_0002beac;\n    }" { (expression_statement "png_crc_finish(png_ptr,length);" (call_expression "png_crc_finish(png_ptr,length)" identifier (argument_list "(png_ptr,length)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x68c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x68c" identifier + number_literal) ))) ;) (labeled_statement "LAB_0002bd88:\n      if (iVar20 == *(int *)ppVar32) {\n        return;\n      }" statement_identifier : (if_statement "if (iVar20 == *(int *)ppVar32) {\n        return;\n      }" if (parenthesized_expression "(iVar20 == *(int *)ppVar32)" ( (binary_expression "iVar20 == *(int *)ppVar32" identifier == (pointer_expression "*(int *)ppVar32" * (cast_expression "(int *)ppVar32" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00053484)();" (call_expression "(*(code *)PTR___stack_chk_fail_00053484)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00053484)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00053484" * (cast_expression "(code *)PTR___stack_chk_fail_00053484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "unaff_s5 = (byte *)length;" (assignment_expression "unaff_s5 = (byte *)length" identifier = (cast_expression "(byte *)length" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_0002beac;" goto statement_identifier ;) })) (expression_statement "png_ptr->mode = uVar4 | 2;" (assignment_expression "png_ptr->mode = uVar4 | 2" (field_expression "png_ptr->mode" identifier -> field_identifier) = (binary_expression "uVar4 | 2" identifier | number_literal)) ;) (if_statement "if ((png_ptr->color_type & 2) == 0) {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "((png_ptr->color_type & 2) == 0)" ( (binary_expression "(png_ptr->color_type & 2) == 0" (parenthesized_expression "(png_ptr->color_type & 2)" ( (binary_expression "png_ptr->color_type & 2" (field_expression "png_ptr->color_type" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" { (expression_statement "png_crc_finish(png_ptr,length);" (call_expression "png_crc_finish(png_ptr,length)" identifier (argument_list "(png_ptr,length)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6b4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x6b4)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6b4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) (expression_statement "unaff_s2 = (png_structrp)0xaaaa0000;" (assignment_expression "unaff_s2 = (png_structrp)0xaaaa0000" identifier = (cast_expression "(png_structrp)0xaaaa0000" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) ;) (if_statement "if ((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)) {\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "((length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3))" ( (binary_expression "(length < 0x301) && (unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)" (parenthesized_expression "(length < 0x301)" ( (binary_expression "length < 0x301" identifier < number_literal) )) && (parenthesized_expression "(unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3)" ( (comma_expression "unaff_s2 = (png_structrp)(length / 3), length == (int)unaff_s2 * 3" (assignment_expression "unaff_s2 = (png_structrp)(length / 3)" identifier = (call_expression "(png_structrp)(length / 3)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(length / 3)" ( (binary_expression "length / 3" identifier / number_literal) )))) , (binary_expression "length == (int)unaff_s2 * 3" identifier == (binary_expression "(int)unaff_s2 * 3" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal))) ))) )) (compound_statement "{\n      local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n      if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = (png_structrp)palette;\n      png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));\n      ppVar27 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);\n      if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" { (expression_statement "local_334 = (jmp_buf *)((int)unaff_s2 << 1);" (assignment_expression "local_334 = (jmp_buf *)((int)unaff_s2 << 1)" identifier = (cast_expression "(jmp_buf *)((int)unaff_s2 << 1)" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 << 1)" ( (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if (png_ptr->color_type == 3) {\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" if (parenthesized_expression "(png_ptr->color_type == 3)" ( (binary_expression "png_ptr->color_type == 3" (field_expression "png_ptr->color_type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));\n        if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }\n        local_334 = (jmp_buf *)((int)unaff_s2 << 1);\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }" { (expression_statement "ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f));" (assignment_expression "ppVar27 = (png_structrp)(1 << (png_ptr->bit_depth & 0x1f))" identifier = (call_expression "(png_structrp)(1 << (png_ptr->bit_depth & 0x1f))" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(1 << (png_ptr->bit_depth & 0x1f))" ( (binary_expression "1 << (png_ptr->bit_depth & 0x1f)" number_literal << (parenthesized_expression "(png_ptr->bit_depth & 0x1f)" ( (binary_expression "png_ptr->bit_depth & 0x1f" (field_expression "png_ptr->bit_depth" identifier -> field_identifier) & number_literal) ))) )))) ;) (if_statement "if ((int)ppVar27 < (int)unaff_s2) {\n          unaff_s2 = ppVar27;\n        }" if (parenthesized_expression "((int)ppVar27 < (int)unaff_s2)" ( (binary_expression "(int)ppVar27 < (int)unaff_s2" (cast_expression "(int)ppVar27" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          unaff_s2 = ppVar27;\n        }" { (expression_statement "unaff_s2 = ppVar27;" (assignment_expression "unaff_s2 = ppVar27" identifier = identifier) ;) })) (expression_statement "local_334 = (jmp_buf *)((int)unaff_s2 << 1);" (assignment_expression "local_334 = (jmp_buf *)((int)unaff_s2 << 1)" identifier = (cast_expression "(jmp_buf *)((int)unaff_s2 << 1)" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 << 1)" ( (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) )))) ;) (if_statement "if (0 < (int)unaff_s2) goto LAB_0002bc70;" if (parenthesized_expression "(0 < (int)unaff_s2)" ( (binary_expression "0 < (int)unaff_s2" number_literal < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002bc70;" goto statement_identifier ;)) }) (else_clause "else if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" else (if_statement "if (unaff_s2 != (png_structrp)0x0) {\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" if (parenthesized_expression "(unaff_s2 != (png_structrp)0x0)" ( (binary_expression "unaff_s2 != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0002bc70:\n        unaff_s7 = buf;\n        unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);\n        ppVar27 = (png_structrp)palette;\n        do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" { (labeled_statement "LAB_0002bc70:\n        unaff_s7 = buf;" statement_identifier : (expression_statement "unaff_s7 = buf;" (assignment_expression "unaff_s7 = buf" identifier = identifier) ;)) (expression_statement "unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);" (assignment_expression "unaff_s6 = (png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8)" identifier = (call_expression "(png_structrp)\n                   ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8)" ( (binary_expression "(int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8" (binary_expression "(int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4)" (binary_expression "(int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs" (cast_expression "(int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "unaff_s2->jmp_buf_local[0].__jmpbuf[0]" (field_expression "unaff_s2->jmp_buf_local[0].__jmpbuf" (subscript_expression "unaff_s2->jmp_buf_local[0]" (field_expression "unaff_s2->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) + (cast_expression "(int)((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs" ( (type_descriptor "int" primitive_type) ) (field_expression "((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "((png_structrp)palette)->jmp_buf_local[0].__jmpbuf[0]" (field_expression "((png_structrp)palette)->jmp_buf_local[0].__jmpbuf" (subscript_expression "((png_structrp)palette)->jmp_buf_local[0]" (field_expression "((png_structrp)palette)->jmp_buf_local" (parenthesized_expression "((png_structrp)palette)" ( (cast_expression "(png_structrp)palette" ( (type_descriptor "png_structrp" type_identifier) ) identifier) )) -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + (cast_expression "(int)((*local_334)[0].__jmpbuf[0].__regs + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((*local_334)[0].__jmpbuf[0].__regs + -4)" ( (binary_expression "(*local_334)[0].__jmpbuf[0].__regs + -4" (field_expression "(*local_334)[0].__jmpbuf[0].__regs" (subscript_expression "(*local_334)[0].__jmpbuf[0]" (field_expression "(*local_334)[0].__jmpbuf" (subscript_expression "(*local_334)[0]" (parenthesized_expression "(*local_334)" ( (pointer_expression "*local_334" * identifier) )) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppVar27 = (png_structrp)palette;" (assignment_expression "ppVar27 = (png_structrp)palette" identifier = (cast_expression "(png_structrp)palette" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (do_statement "do {\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);" do (compound_statement "{\n          png_crc_read(png_ptr,unaff_s7,3);\n          unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);\n          *(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];\n          *(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];\n          ppVar27 = unaff_s0;\n        }" { (expression_statement "png_crc_read(png_ptr,unaff_s7,3);" (call_expression "png_crc_read(png_ptr,unaff_s7,3)" identifier (argument_list "(png_ptr,unaff_s7,3)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3);" (assignment_expression "unaff_s0 = (png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3)" identifier = (call_expression "(png_structrp)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3)" ( (binary_expression "(int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 3" (cast_expression "(int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "*(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];" (assignment_expression "*(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0]" (pointer_expression "*(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" * (cast_expression "(png_byte *)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "png_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)))) = (subscript_expression "buf[0]" identifier [ number_literal ])) ;) (expression_statement "*(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];" (assignment_expression "*(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1]" (pointer_expression "*(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" * (cast_expression "(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" ( (type_descriptor "png_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" ( (binary_expression "(int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 1" (cast_expression "(int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) = (subscript_expression "buf[1]" identifier [ number_literal ])) ;) (expression_statement "*(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];" (assignment_expression "*(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2]" (pointer_expression "*(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" * (cast_expression "(png_byte *)((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" ( (type_descriptor "png_byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" ( (binary_expression "(int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc + 2" (cast_expression "(int)&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) = (subscript_expression "buf[2]" identifier [ number_literal ])) ;) (expression_statement "ppVar27 = unaff_s0;" (assignment_expression "ppVar27 = unaff_s0" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s6 != unaff_s0)" ( (binary_expression "unaff_s6 != unaff_s0" identifier != identifier) )) ;) })))) (expression_statement "unaff_s8 = (png_structrp)palette;" (assignment_expression "unaff_s8 = (png_structrp)palette" identifier = (cast_expression "(png_structrp)palette" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));" (call_expression "png_crc_finish(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)))" identifier (argument_list "(png_ptr,length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)))" ( identifier , (binary_expression "length - ((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4))" identifier - (parenthesized_expression "((int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4))" ( (binary_expression "(int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs +\n                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)" (cast_expression "(int)unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s2->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "unaff_s2->jmp_buf_local[0].__jmpbuf[0]" (field_expression "unaff_s2->jmp_buf_local[0].__jmpbuf" (subscript_expression "unaff_s2->jmp_buf_local[0]" (field_expression "unaff_s2->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) + (cast_expression "(int)((*local_334)[0].__jmpbuf[0].__regs + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((*local_334)[0].__jmpbuf[0].__regs + -4)" ( (binary_expression "(*local_334)[0].__jmpbuf[0].__regs + -4" (field_expression "(*local_334)[0].__jmpbuf[0].__regs" (subscript_expression "(*local_334)[0].__jmpbuf[0]" (field_expression "(*local_334)[0].__jmpbuf" (subscript_expression "(*local_334)[0]" (parenthesized_expression "(*local_334)" ( (pointer_expression "*local_334" * identifier) )) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) ))) ))) ;) (expression_statement "ppVar27 = unaff_s8;" (assignment_expression "ppVar27 = unaff_s8" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2);" (call_expression "(*(code *)PTR_png_set_PLTE_000533d0)(png_ptr,info_ptr,unaff_s8,unaff_s2)" (parenthesized_expression "(*(code *)PTR_png_set_PLTE_000533d0)" ( (pointer_expression "*(code *)PTR_png_set_PLTE_000533d0" * (cast_expression "(code *)PTR_png_set_PLTE_000533d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,info_ptr,unaff_s8,unaff_s2)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (png_ptr->num_trans == 0) {\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" if (parenthesized_expression "(png_ptr->num_trans == 0)" ( (binary_expression "png_ptr->num_trans == 0" (field_expression "png_ptr->num_trans" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }" { (if_statement "if (info_ptr != (png_inforp)0x0) {\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" if (parenthesized_expression "(info_ptr != (png_inforp)0x0)" ( (binary_expression "info_ptr != (png_inforp)0x0" identifier != (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n          uVar4 = info_ptr->valid;\n          if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" { (expression_statement "uVar4 = info_ptr->valid;" (assignment_expression "uVar4 = info_ptr->valid" identifier = (field_expression "info_ptr->valid" identifier -> field_identifier)) ;) (if_statement "if ((uVar4 & 0x10) != 0) goto LAB_0002bd04;" if (parenthesized_expression "((uVar4 & 0x10) != 0)" ( (binary_expression "(uVar4 & 0x10) != 0" (parenthesized_expression "(uVar4 & 0x10)" ( (binary_expression "uVar4 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002bd04;" goto statement_identifier ;)) (goto_statement "goto LAB_0002bd24;" goto statement_identifier ;) })) }) (else_clause "else {\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" else (compound_statement "{\n        png_ptr->num_trans = 0;\n        if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" { (expression_statement "png_ptr->num_trans = 0;" (assignment_expression "png_ptr->num_trans = 0" (field_expression "png_ptr->num_trans" identifier -> field_identifier) = number_literal) ;) (if_statement "if (info_ptr == (png_inforp)0x0) {\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" if (parenthesized_expression "(info_ptr == (png_inforp)0x0)" ( (binary_expression "info_ptr == (png_inforp)0x0" identifier == (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n          ppVar13 = png_ptr;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);\n        }" { (expression_statement "ppVar13 = png_ptr;" (assignment_expression "ppVar13 = png_ptr" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6d0)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x6d0)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6d0" identifier + number_literal) ))) ;) }) (else_clause "else {\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" else (compound_statement "{\nLAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;\n          puVar33 = PTR_s_nt_0005301c;\n          info_ptr->num_trans = 0;\n          (*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);\n          uVar4 = info_ptr->valid;\nLAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }\n          ppVar13 = png_ptr;\n          if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" { (labeled_statement "LAB_0002bd04:\n          puVar3 = PTR_png_chunk_benign_error_0005349c;" statement_identifier : (expression_statement "puVar3 = PTR_png_chunk_benign_error_0005349c;" (assignment_expression "puVar3 = PTR_png_chunk_benign_error_0005349c" identifier = identifier) ;)) (expression_statement "puVar33 = PTR_s_nt_0005301c;" (assignment_expression "puVar33 = PTR_s_nt_0005301c" identifier = identifier) ;) (expression_statement "info_ptr->num_trans = 0;" (assignment_expression "info_ptr->num_trans = 0" (field_expression "info_ptr->num_trans" identifier -> field_identifier) = number_literal) ;) (expression_statement "(*(code *)puVar3)(png_ptr,puVar33 + 0x6d0);" (call_expression "(*(code *)puVar3)(png_ptr,puVar33 + 0x6d0)" (parenthesized_expression "(*(code *)puVar3)" ( (pointer_expression "*(code *)puVar3" * (cast_expression "(code *)puVar3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,puVar33 + 0x6d0)" ( identifier , (binary_expression "puVar33 + 0x6d0" identifier + number_literal) ))) ;) (expression_statement "uVar4 = info_ptr->valid;" (assignment_expression "uVar4 = info_ptr->valid" identifier = (field_expression "info_ptr->valid" identifier -> field_identifier)) ;) (labeled_statement "LAB_0002bd24:\n          if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }" statement_identifier : (if_statement "if ((uVar4 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }" if (parenthesized_expression "((uVar4 & 0x40) != 0)" ( (binary_expression "(uVar4 & 0x40) != 0" (parenthesized_expression "(uVar4 & 0x40)" ( (binary_expression "uVar4 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);\n            uVar4 = info_ptr->valid;\n          }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6e4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x6e4)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6e4" identifier + number_literal) ))) ;) (expression_statement "uVar4 = info_ptr->valid;" (assignment_expression "uVar4 = info_ptr->valid" identifier = (field_expression "info_ptr->valid" identifier -> field_identifier)) ;) }))) (expression_statement "ppVar13 = png_ptr;" (assignment_expression "ppVar13 = png_ptr" identifier = identifier) ;) (if_statement "if ((uVar4 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }" if (parenthesized_expression "((uVar4 & 0x20) != 0)" ( (binary_expression "(uVar4 & 0x20) != 0" (parenthesized_expression "(uVar4 & 0x20)" ( (binary_expression "uVar4 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);\n          }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x6f8)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x6f8)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6f8" identifier + number_literal) ))) ;) })) }))) }))) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) (expression_statement "png_crc_finish(png_ptr,length);" (call_expression "png_crc_finish(png_ptr,length)" identifier (argument_list "(png_ptr,length)" ( identifier , identifier ))) ;) (if_statement "if (png_ptr->color_type != '\x03') {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "(png_ptr->color_type != '\x03')" ( (binary_expression "png_ptr->color_type != '\x03'" (field_expression "png_ptr->color_type" identifier -> field_identifier) != (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(png_ptr,PTR_s_nt_0005301c + 0x69c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x69c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) }))) (expression_statement "pcVar35 = png_handle_IEND;" (assignment_expression "pcVar35 = png_handle_IEND" identifier = identifier) ;) (expression_statement "puVar33 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar33 = PTR_png_chunk_error_0005351c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_368 = puVar33 + 0x2f114;" (assignment_expression "puStack_368 = puVar33 + 0x2f114" identifier = (binary_expression "puVar33 + 0x2f114" identifier + number_literal)) ;) (expression_statement "ppStack_35c = unaff_s0;" (assignment_expression "ppStack_35c = unaff_s0" identifier = identifier) ;) (expression_statement "ppStack_358 = unaff_s1;" (assignment_expression "ppStack_358 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_354 = pcVar35;" (assignment_expression "pcStack_354 = pcVar35" identifier = identifier) ;) (if_statement "if ((png_ptr->mode & 5) == 5) {\n    png_ptr->mode = png_ptr->mode | 0x18;\n    png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n    if (ppVar27 != (png_structrp)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "((png_ptr->mode & 5) == 5)" ( (binary_expression "(png_ptr->mode & 5) == 5" (parenthesized_expression "(png_ptr->mode & 5)" ( (binary_expression "png_ptr->mode & 5" (field_expression "png_ptr->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    png_ptr->mode = png_ptr->mode | 0x18;\n    png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n    if (ppVar27 != (png_structrp)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" { (expression_statement "png_ptr->mode = png_ptr->mode | 0x18;" (assignment_expression "png_ptr->mode = png_ptr->mode | 0x18" (field_expression "png_ptr->mode" identifier -> field_identifier) = (binary_expression "png_ptr->mode | 0x18" (field_expression "png_ptr->mode" identifier -> field_identifier) | number_literal)) ;) (expression_statement "png_crc_finish(png_ptr,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(png_ptr,(png_uint_32)ppVar27)" identifier (argument_list "(png_ptr,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (if_statement "if (ppVar27 != (png_structrp)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" if (parenthesized_expression "(ppVar27 != (png_structrp)0x0)" ( (binary_expression "ppVar27 != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" { comment comment (expression_statement "(**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(puStack_368 + -0x7b54))(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(puStack_368 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_368 + -0x7b54)" * (pointer_expression "*(code **)(puStack_368 + -0x7b54)" * (cast_expression "(code **)(puStack_368 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_368 + -0x7b54)" ( (binary_expression "puStack_368 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(png_ptr,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(puStack_368 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_368 + -0x7fd4)" * (cast_expression "(int *)(puStack_368 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_368 + -0x7fd4)" ( (binary_expression "puStack_368 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar34 = *(code **)(puVar33 + 0x27640);" (assignment_expression "pcVar34 = *(code **)(puVar33 + 0x27640)" identifier = (pointer_expression "*(code **)(puVar33 + 0x27640)" * (cast_expression "(code **)(puVar33 + 0x27640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar33 + 0x27640)" ( (binary_expression "puVar33 + 0x27640" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = png_handle_gAMA;" (assignment_expression "pcVar36 = png_handle_gAMA" identifier = identifier) ;) (expression_statement "ppVar21 = (png_structrp)(*(int *)(puVar33 + 0x27140) + 0x68c);" (assignment_expression "ppVar21 = (png_structrp)(*(int *)(puVar33 + 0x27140) + 0x68c)" identifier = (call_expression "(png_structrp)(*(int *)(puVar33 + 0x27140) + 0x68c)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(puVar33 + 0x27140) + 0x68c)" ( (binary_expression "*(int *)(puVar33 + 0x27140) + 0x68c" (pointer_expression "*(int *)(puVar33 + 0x27140)" * (cast_expression "(int *)(puVar33 + 0x27140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar33 + 0x27140)" ( (binary_expression "puVar33 + 0x27140" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar35 = pcVar34 + 0x2f078;" (assignment_expression "pcVar35 = pcVar34 + 0x2f078" identifier = (binary_expression "pcVar34 + 0x2f078" identifier + number_literal)) ;) (expression_statement "piVar28 = *(int **)(pcVar34 + 0x27544);" (assignment_expression "piVar28 = *(int **)(pcVar34 + 0x27544)" identifier = (pointer_expression "*(int **)(pcVar34 + 0x27544)" * (cast_expression "(int **)(pcVar34 + 0x27544)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x27544)" ( (binary_expression "pcVar34 + 0x27544" identifier + number_literal) ))))) ;) (expression_statement "puStack_380 = (undefined *)ppVar32;" (assignment_expression "puStack_380 = (undefined *)ppVar32" identifier = (cast_expression "(undefined *)ppVar32" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pvStack_394 = (void *)*piVar28;" (assignment_expression "pvStack_394 = (void *)*piVar28" identifier = (cast_expression "(void *)*piVar28" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar28" * identifier))) ;) (expression_statement "ppVar13 = png_ptr;" (assignment_expression "ppVar13 = png_ptr" identifier = identifier) ;) (expression_statement "ppStack_3cc = unaff_s0;" (assignment_expression "ppStack_3cc = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_3a0 = pcVar35;" (assignment_expression "pcStack_3a0 = pcVar35" identifier = identifier) ;) (expression_statement "ppStack_38c = unaff_s0;" (assignment_expression "ppStack_38c = unaff_s0" identifier = identifier) ;) (expression_statement "ppStack_388 = unaff_s1;" (assignment_expression "ppStack_388 = unaff_s1" identifier = identifier) ;) (expression_statement "ppStack_384 = unaff_s2;" (assignment_expression "ppStack_384 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_37c = pcVar36;" (assignment_expression "pcStack_37c = pcVar36" identifier = identifier) ;) (if_statement "if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar35 = pcStack_3a0;\n    if (pvStack_394 == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    ppStack_3cc = png_ptr;\n    unaff_s2 = ppVar21;\n  }" if (parenthesized_expression "((png_ptr->mode & 1) != 0)" ( (binary_expression "(png_ptr->mode & 1) != 0" (parenthesized_expression "(png_ptr->mode & 1)" ( (binary_expression "png_ptr->mode & 1" (field_expression "png_ptr->mode" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((png_ptr->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar35 = pcStack_3a0;\n    if (pvStack_394 == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    ppStack_3cc = png_ptr;\n    unaff_s2 = ppVar21;\n  }" { (if_statement "if ((png_ptr->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((png_ptr->mode & 6) == 0)" ( (binary_expression "(png_ptr->mode & 6) == 0" (parenthesized_expression "(png_ptr->mode & 6)" ( (binary_expression "png_ptr->mode & 6" (field_expression "png_ptr->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }" { (if_statement "if (ppVar27 == (png_structrp)&DAT_00000004) {\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" if (parenthesized_expression "(ppVar27 == (png_structrp)&DAT_00000004)" ( (binary_expression "ppVar27 == (png_structrp)&DAT_00000004" (binary_expression "ppVar27 == (png_structrp)" identifier == (parenthesized_expression "(png_structrp)" ( identifier ))) & identifier) )) (compound_statement "{\n        ppVar32 = (png_structrp)&stack0xfffffc68;\n        png_crc_read(png_ptr,(png_bytep)ppVar32,4);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(png_ptr,0);\n        if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }\n      }" { (expression_statement "ppVar32 = (png_structrp)&stack0xfffffc68;" (assignment_expression "ppVar32 = (png_structrp)&stack0xfffffc68" identifier = (binary_expression "(png_structrp)&stack0xfffffc68" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier)) ;) (expression_statement "png_crc_read(png_ptr,(png_bytep)ppVar32,4);" (call_expression "png_crc_read(png_ptr,(png_bytep)ppVar32,4)" identifier (argument_list "(png_ptr,(png_bytep)ppVar32,4)" ( identifier , (cast_expression "(png_bytep)ppVar32" ( (type_descriptor "png_bytep" type_identifier) ) identifier) , number_literal ))) ;) (expression_statement "ppVar23 = (png_const_bytep)0x0;" (assignment_expression "ppVar23 = (png_const_bytep)0x0" identifier = (cast_expression "(png_const_bytep)0x0" ( (type_descriptor "png_const_bytep" type_identifier) ) number_literal)) ;) (expression_statement "iVar20 = png_crc_finish(png_ptr,0);" (assignment_expression "iVar20 = png_crc_finish(png_ptr,0)" identifier = (call_expression "png_crc_finish(png_ptr,0)" identifier (argument_list "(png_ptr,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n          ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);\n          png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);\n          ppVar13 = png_ptr;\n          png_colorspace_sync(png_ptr,(png_inforp)ppVar21);\n        }" { (expression_statement "ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23);" (assignment_expression "ppVar27 = (png_structrp)png_get_fixed_point(ppVar32,ppVar23)" identifier = (cast_expression "(png_structrp)png_get_fixed_point(ppVar32,ppVar23)" ( (type_descriptor "png_structrp" type_identifier) ) (call_expression "png_get_fixed_point(ppVar32,ppVar23)" identifier (argument_list "(ppVar32,ppVar23)" ( identifier , identifier ))))) ;) (expression_statement "png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27);" (call_expression "png_colorspace_set_gamma(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27)" identifier (argument_list "(png_ptr,&png_ptr->colorspace,(png_fixed_point)ppVar27)" ( identifier , (pointer_expression "&png_ptr->colorspace" & (field_expression "png_ptr->colorspace" identifier -> field_identifier)) , (cast_expression "(png_fixed_point)ppVar27" ( (type_descriptor "png_fixed_point" type_identifier) ) identifier) ))) ;) (expression_statement "ppVar13 = png_ptr;" (assignment_expression "ppVar13 = png_ptr" identifier = identifier) ;) (expression_statement "png_colorspace_sync(png_ptr,(png_inforp)ppVar21);" (call_expression "png_colorspace_sync(png_ptr,(png_inforp)ppVar21)" identifier (argument_list "(png_ptr,(png_inforp)ppVar21)" ( identifier , (cast_expression "(png_inforp)ppVar21" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) })) }) (else_clause "else {\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" else (compound_statement "{\n        png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" { (expression_statement "png_crc_finish(png_ptr,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(png_ptr,(png_uint_32)ppVar27)" identifier (argument_list "(png_ptr,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b54)" ( (binary_expression "pcStack_3a0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" ( (binary_expression "pcStack_3a0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      png_crc_finish(png_ptr,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "png_crc_finish(png_ptr,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(png_ptr,(png_uint_32)ppVar27)" identifier (argument_list "(png_ptr,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b54)" ( (binary_expression "pcStack_3a0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(png_ptr,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" ( (binary_expression "pcStack_3a0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "pcVar35 = pcStack_3a0;" (assignment_expression "pcVar35 = pcStack_3a0" identifier = identifier) ;) (if_statement "if (pvStack_394 == (void *)*piVar28) {\n      return;\n    }" if (parenthesized_expression "(pvStack_394 == (void *)*piVar28)" ( (binary_expression "pvStack_394 == (void *)*piVar28" identifier == (cast_expression "(void *)*piVar28" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar28" * identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3a0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b6c)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b6c)" ( (binary_expression "pcStack_3a0 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppStack_3cc = png_ptr;" (assignment_expression "ppStack_3cc = png_ptr" identifier = identifier) ;) (expression_statement "unaff_s2 = ppVar21;" (assignment_expression "unaff_s2 = ppVar21" identifier = identifier) ;) })) (expression_statement "pcVar34 = *(code **)(pcVar35 + -0x7ad4);" (assignment_expression "pcVar34 = *(code **)(pcVar35 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x7ad4)" * (cast_expression "(code **)(pcVar35 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7ad4)" ( (binary_expression "pcVar35 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = png_handle_sBIT;" (assignment_expression "pcVar36 = png_handle_sBIT" identifier = identifier) ;) (expression_statement "ppVar22 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);" (assignment_expression "ppVar22 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar35 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar35 + -0x7fd4)" * (cast_expression "(int *)(pcVar35 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fd4)" ( (binary_expression "pcVar35 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar35 = pcVar34 + 0x2ef14;" (assignment_expression "pcVar35 = pcVar34 + 0x2ef14" identifier = (binary_expression "pcVar34 + 0x2ef14" identifier + number_literal)) ;) (expression_statement "piVar29 = *(int **)(pcVar34 + 0x273e0);" (assignment_expression "piVar29 = *(int **)(pcVar34 + 0x273e0)" identifier = (pointer_expression "*(int **)(pcVar34 + 0x273e0)" * (cast_expression "(int **)(pcVar34 + 0x273e0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x273e0)" ( (binary_expression "pcVar34 + 0x273e0" identifier + number_literal) ))))) ;) (expression_statement "pvStack_3d4 = (void *)*piVar29;" (assignment_expression "pvStack_3d4 = (void *)*piVar29" identifier = (cast_expression "(void *)*piVar29" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar29" * identifier))) ;) (expression_statement "ppVar21 = ppVar13;" (assignment_expression "ppVar21 = ppVar13" identifier = identifier) ;) (expression_statement "ppStack_404 = ppStack_3cc;" (assignment_expression "ppStack_404 = ppStack_3cc" identifier = identifier) ;) (expression_statement "pcStack_3e0 = pcVar35;" (assignment_expression "pcStack_3e0 = pcVar35" identifier = identifier) ;) (expression_statement "piStack_3c8 = piVar28;" (assignment_expression "piStack_3c8 = piVar28" identifier = identifier) ;) (expression_statement "ppStack_3c4 = unaff_s2;" (assignment_expression "ppStack_3c4 = unaff_s2" identifier = identifier) ;) (expression_statement "ppStack_3c0 = ppVar32;" (assignment_expression "ppStack_3c0 = ppVar32" identifier = identifier) ;) (expression_statement "ppStack_3bc = info_ptr;" (assignment_expression "ppStack_3bc = info_ptr" identifier = identifier) ;) (expression_statement "pbStack_3b8 = (byte *)length;" (assignment_expression "pbStack_3b8 = (byte *)length" identifier = (cast_expression "(byte *)length" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_3b4 = pcVar36;" (assignment_expression "pcStack_3b4 = pcVar36" identifier = identifier) ;) (if_statement "if ((ppVar13->mode & 1) != 0) {\n    if ((ppVar13->mode & 6) == 0) {\n      if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar35 = pcStack_3e0;\n    if (pvStack_3d4 == (void *)*piVar29) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    ppStack_404 = ppVar13;\n  }" if (parenthesized_expression "((ppVar13->mode & 1) != 0)" ( (binary_expression "(ppVar13->mode & 1) != 0" (parenthesized_expression "(ppVar13->mode & 1)" ( (binary_expression "ppVar13->mode & 1" (field_expression "ppVar13->mode" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((ppVar13->mode & 6) == 0) {\n      if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar35 = pcStack_3e0;\n    if (pvStack_3d4 == (void *)*piVar29) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    ppStack_404 = ppVar13;\n  }" { (if_statement "if ((ppVar13->mode & 6) == 0) {\n      if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((ppVar13->mode & 6) == 0)" ( (binary_expression "(ppVar13->mode & 6) == 0" (parenthesized_expression "(ppVar13->mode & 6)" ( (binary_expression "ppVar13->mode & 6" (field_expression "ppVar13->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }" { (if_statement "if ((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }\n      else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" if (parenthesized_expression "((ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0))" ( (binary_expression "(ppVar22 == (png_structrp)0x0) ||\n         ((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)" (parenthesized_expression "(ppVar22 == (png_structrp)0x0)" ( (binary_expression "ppVar22 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) || (parenthesized_expression "((ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)" ( (binary_expression "(ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0" (parenthesized_expression "(ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U)" ( (binary_expression "ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U" (subscript_expression "ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs[0]" (field_expression "ppVar22->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "ppVar22->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar22->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar22->jmp_buf_local[0]" (field_expression "ppVar22->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        ppVar32 = (png_structrp)0x3;\n        if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        ppStack_3a8 = ppVar27;\n        (**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);\n        ppVar27 = ppStack_3a8;\n        png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);\n        unaff_s2 = ppVar30;\n        info_ptr = (png_inforp)ppVar32;\n      }" { (expression_statement "ppVar32 = (png_structrp)0x3;" (assignment_expression "ppVar32 = (png_structrp)0x3" identifier = (cast_expression "(png_structrp)0x3" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) ;) (if_statement "if (ppVar13->color_type == '\x03') {\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }\n        else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" if (parenthesized_expression "(ppVar13->color_type == '\x03')" ( (binary_expression "ppVar13->color_type == '\x03'" (field_expression "ppVar13->color_type" identifier -> field_identifier) == (char_literal "'\x03'" ' escape_sequence ')) )) (compound_statement "{\n          ppVar30 = (png_structrp)&DAT_00000008;\n          if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n        }" { (expression_statement "ppVar30 = (png_structrp)&DAT_00000008;" (assignment_expression "ppVar30 = (png_structrp)&DAT_00000008" identifier = (binary_expression "(png_structrp)&DAT_00000008" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier)) ;) (if_statement "if (ppVar27 == (png_structrp)0x3) goto LAB_0002c168;" if (parenthesized_expression "(ppVar27 == (png_structrp)0x3)" ( (binary_expression "ppVar27 == (png_structrp)0x3" identifier == (cast_expression "(png_structrp)0x3" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0002c168;" goto statement_identifier ;)) (labeled_statement "LAB_0002c268:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);" statement_identifier : (expression_statement "iVar20 = *(int *)(pcVar34 + 0x26f40);" (assignment_expression "iVar20 = *(int *)(pcVar34 + 0x26f40)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x26f40)" * (cast_expression "(int *)(pcVar34 + 0x26f40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x26f40)" ( (binary_expression "pcVar34 + 0x26f40" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" else (compound_statement "{\n          ppVar32 = (png_structrp)(uint)ppVar13->channels;\n          ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;\n          if (ppVar32 != ppVar27) goto LAB_0002c268;\nLAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);\n          if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" { (expression_statement "ppVar32 = (png_structrp)(uint)ppVar13->channels;" (assignment_expression "ppVar32 = (png_structrp)(uint)ppVar13->channels" identifier = (cast_expression "(png_structrp)(uint)ppVar13->channels" ( (type_descriptor "png_structrp" type_identifier) ) (cast_expression "(uint)ppVar13->channels" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppVar13->channels" identifier -> field_identifier)))) ;) (expression_statement "ppVar30 = (png_structrp)(uint)ppVar13->bit_depth;" (assignment_expression "ppVar30 = (png_structrp)(uint)ppVar13->bit_depth" identifier = (cast_expression "(png_structrp)(uint)ppVar13->bit_depth" ( (type_descriptor "png_structrp" type_identifier) ) (cast_expression "(uint)ppVar13->bit_depth" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppVar13->bit_depth" identifier -> field_identifier)))) ;) (if_statement "if (ppVar32 != ppVar27) goto LAB_0002c268;" if (parenthesized_expression "(ppVar32 != ppVar27)" ( (binary_expression "ppVar32 != ppVar27" identifier != identifier) )) (goto_statement "goto LAB_0002c268;" goto statement_identifier ;)) (labeled_statement "LAB_0002c168:\n          iVar20 = *(int *)(pcVar34 + 0x26f40);" statement_identifier : (expression_statement "iVar20 = *(int *)(pcVar34 + 0x26f40);" (assignment_expression "iVar20 = *(int *)(pcVar34 + 0x26f40)" identifier = (pointer_expression "*(int *)(pcVar34 + 0x26f40)" * (cast_expression "(int *)(pcVar34 + 0x26f40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x26f40)" ( (binary_expression "pcVar34 + 0x26f40" identifier + number_literal) ))))) ;)) (if_statement "if (ppVar32 < (png_structrp)&DAT_00000005) {\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }" if (parenthesized_expression "(ppVar32 < (png_structrp)&DAT_00000005)" ( (binary_expression "ppVar32 < (png_structrp)&DAT_00000005" (binary_expression "ppVar32 < (png_structrp)" identifier < (parenthesized_expression "(png_structrp)" ( identifier ))) & identifier) )) (compound_statement "{\n            abStack_3d8[0] = (byte)ppVar30;\n            ppVar27 = ppVar32;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);\n            iVar20 = png_crc_finish(ppVar13,0);\n            unaff_s2 = ppVar30;\n            info_ptr = (png_inforp)ppVar32;\n            length = (png_uint_32)abStack_3d8;\n            if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }\n            goto LAB_0002c230;\n          }" { (expression_statement "abStack_3d8[0] = (byte)ppVar30;" (assignment_expression "abStack_3d8[0] = (byte)ppVar30" (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]) = (cast_expression "(byte)ppVar30" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "ppVar27 = ppVar32;" (assignment_expression "ppVar27 = ppVar32" identifier = identifier) ;) (expression_statement "abStack_3d8[1] = abStack_3d8[0];" (assignment_expression "abStack_3d8[1] = abStack_3d8[0]" (subscript_expression "abStack_3d8[1]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "abStack_3d8[2] = abStack_3d8[0];" (assignment_expression "abStack_3d8[2] = abStack_3d8[0]" (subscript_expression "abStack_3d8[2]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "abStack_3d8[3] = abStack_3d8[0];" (assignment_expression "abStack_3d8[3] = abStack_3d8[0]" (subscript_expression "abStack_3d8[3]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32);" (call_expression "png_crc_read(ppVar13,abStack_3d8,(png_uint_32)ppVar32)" identifier (argument_list "(ppVar13,abStack_3d8,(png_uint_32)ppVar32)" ( identifier , identifier , (cast_expression "(png_uint_32)ppVar32" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "iVar20 = png_crc_finish(ppVar13,0);" (assignment_expression "iVar20 = png_crc_finish(ppVar13,0)" identifier = (call_expression "png_crc_finish(ppVar13,0)" identifier (argument_list "(ppVar13,0)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s2 = ppVar30;" (assignment_expression "unaff_s2 = ppVar30" identifier = identifier) ;) (expression_statement "info_ptr = (png_inforp)ppVar32;" (assignment_expression "info_ptr = (png_inforp)ppVar32" identifier = (cast_expression "(png_inforp)ppVar32" ( (type_descriptor "png_inforp" type_identifier) ) identifier)) ;) (expression_statement "length = (png_uint_32)abStack_3d8;" (assignment_expression "length = (png_uint_32)abStack_3d8" identifier = (cast_expression "(png_uint_32)abStack_3d8" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (if_statement "if (iVar20 == 0) {\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n              if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }\n            }" { (if_statement "if (ppVar32 == (png_structrp)0x0) {\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }\n              else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }" if (parenthesized_expression "(ppVar32 == (png_structrp)0x0)" ( (binary_expression "ppVar32 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }\n                ppVar27 = (png_structrp)&ppVar13->sig_bit;\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);\n                info_ptr = (png_inforp)ppVar32;\n              }" { (labeled_statement "LAB_0002c1f4:\n                if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }" statement_identifier : (if_statement "if ((ppVar13->color_type & 2) == 0) {\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }\n                else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }" if (parenthesized_expression "((ppVar13->color_type & 2) == 0)" ( (binary_expression "(ppVar13->color_type & 2) == 0" (parenthesized_expression "(ppVar13->color_type & 2)" ( (binary_expression "ppVar13->color_type & 2" (field_expression "ppVar13->color_type" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  (ppVar13->sig_bit).gray = abStack_3d8[0];\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[0];\n                  (ppVar13->sig_bit).blue = abStack_3d8[0];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[1];\n                }" { (expression_statement "(ppVar13->sig_bit).gray = abStack_3d8[0];" (assignment_expression "(ppVar13->sig_bit).gray = abStack_3d8[0]" (field_expression "(ppVar13->sig_bit).gray" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "(ppVar13->sig_bit).red = abStack_3d8[0];" (assignment_expression "(ppVar13->sig_bit).red = abStack_3d8[0]" (field_expression "(ppVar13->sig_bit).red" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "(ppVar13->sig_bit).green = abStack_3d8[0];" (assignment_expression "(ppVar13->sig_bit).green = abStack_3d8[0]" (field_expression "(ppVar13->sig_bit).green" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "(ppVar13->sig_bit).blue = abStack_3d8[0];" (assignment_expression "(ppVar13->sig_bit).blue = abStack_3d8[0]" (field_expression "(ppVar13->sig_bit).blue" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "(ppVar13->sig_bit).alpha = abStack_3d8[1];" (assignment_expression "(ppVar13->sig_bit).alpha = abStack_3d8[1]" (field_expression "(ppVar13->sig_bit).alpha" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }" else (compound_statement "{\n                  (ppVar13->sig_bit).red = abStack_3d8[0];\n                  (ppVar13->sig_bit).green = abStack_3d8[1];\n                  (ppVar13->sig_bit).blue = abStack_3d8[2];\n                  (ppVar13->sig_bit).alpha = abStack_3d8[3];\n                }" { (expression_statement "(ppVar13->sig_bit).red = abStack_3d8[0];" (assignment_expression "(ppVar13->sig_bit).red = abStack_3d8[0]" (field_expression "(ppVar13->sig_bit).red" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "(ppVar13->sig_bit).green = abStack_3d8[1];" (assignment_expression "(ppVar13->sig_bit).green = abStack_3d8[1]" (field_expression "(ppVar13->sig_bit).green" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[1]" identifier [ number_literal ])) ;) (expression_statement "(ppVar13->sig_bit).blue = abStack_3d8[2];" (assignment_expression "(ppVar13->sig_bit).blue = abStack_3d8[2]" (field_expression "(ppVar13->sig_bit).blue" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[2]" identifier [ number_literal ])) ;) (expression_statement "(ppVar13->sig_bit).alpha = abStack_3d8[3];" (assignment_expression "(ppVar13->sig_bit).alpha = abStack_3d8[3]" (field_expression "(ppVar13->sig_bit).alpha" (parenthesized_expression "(ppVar13->sig_bit)" ( (field_expression "ppVar13->sig_bit" identifier -> field_identifier) )) . field_identifier) = (subscript_expression "abStack_3d8[3]" identifier [ number_literal ])) ;) })))) (expression_statement "ppVar27 = (png_structrp)&ppVar13->sig_bit;" (assignment_expression "ppVar27 = (png_structrp)&ppVar13->sig_bit" identifier = (binary_expression "(png_structrp)&ppVar13->sig_bit" (parenthesized_expression "(png_structrp)" ( identifier )) & (field_expression "ppVar13->sig_bit" identifier -> field_identifier))) ;) (expression_statement "ppVar21 = ppVar13;" (assignment_expression "ppVar21 = ppVar13" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b38))(ppVar13,ppVar22)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b38))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b38)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b38)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b38)" ( (binary_expression "pcStack_3e0 + -0x7b38" identifier + number_literal) ))))) )) (argument_list "(ppVar13,ppVar22)" ( identifier , identifier ))) ;) (expression_statement "info_ptr = (png_inforp)ppVar32;" (assignment_expression "info_ptr = (png_inforp)ppVar32" identifier = (cast_expression "(png_inforp)ppVar32" ( (type_descriptor "png_inforp" type_identifier) ) identifier)) ;) }) (else_clause "else {\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }" else (compound_statement "{\n                if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }\n                ppVar21 = ppVar13;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n                info_ptr = (png_inforp)ppVar32;\n              }" { (if_statement "if (((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)) {\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }" if (parenthesized_expression "(((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30))" ( (binary_expression "((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0) &&\n                   (p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)" (parenthesized_expression "((png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0)" ( (binary_expression "(png_structrp)(uint)abStack_3d8[0] != (png_structrp)0x0" (cast_expression "(png_structrp)(uint)abStack_3d8[0]" ( (type_descriptor "png_structrp" type_identifier) ) (cast_expression "(uint)abStack_3d8[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]))) != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) && (parenthesized_expression "(p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30)" ( (comma_expression "p_Var2 = (__jmp_buf_tag *)abStack_3d8,\n                   (png_structrp)(uint)abStack_3d8[0] <= ppVar30" (assignment_expression "p_Var2 = (__jmp_buf_tag *)abStack_3d8" identifier = (cast_expression "(__jmp_buf_tag *)abStack_3d8" ( (type_descriptor "__jmp_buf_tag *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "(png_structrp)(uint)abStack_3d8[0] <= ppVar30" (cast_expression "(png_structrp)(uint)abStack_3d8[0]" ( (type_descriptor "png_structrp" type_identifier) ) (cast_expression "(uint)abStack_3d8[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]))) <= identifier)) ))) )) (compound_statement "{\n                  ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);\n                  do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));\n                }" { (expression_statement "ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32);" (assignment_expression "ppVar32 = (png_structrp)(abStack_3d8 + (int)ppVar32)" identifier = (call_expression "(png_structrp)(abStack_3d8 + (int)ppVar32)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(abStack_3d8 + (int)ppVar32)" ( (binary_expression "abStack_3d8 + (int)ppVar32" identifier + (cast_expression "(int)ppVar32" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (do_statement "do {\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  } while ((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30));" do (compound_statement "{\n                    ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);\n                    if (ppVar32 == ppVar21) goto LAB_0002c1f4;\n                    ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;\n                  }" { (expression_statement "ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1);" (assignment_expression "ppVar21 = (png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1)" identifier = (call_expression "(png_structrp)((int)&p_Var2->__jmpbuf[0].__pc + 1)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)&p_Var2->__jmpbuf[0].__pc + 1)" ( (binary_expression "(int)&p_Var2->__jmpbuf[0].__pc + 1" (cast_expression "(int)&p_Var2->__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var2->__jmpbuf[0].__pc" & (field_expression "p_Var2->__jmpbuf[0].__pc" (subscript_expression "p_Var2->__jmpbuf[0]" (field_expression "p_Var2->__jmpbuf" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (ppVar32 == ppVar21) goto LAB_0002c1f4;" if (parenthesized_expression "(ppVar32 == ppVar21)" ( (binary_expression "ppVar32 == ppVar21" identifier == identifier) )) (goto_statement "goto LAB_0002c1f4;" goto statement_identifier ;)) (expression_statement "ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;" (assignment_expression "ppVar5 = (png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" identifier = (binary_expression "(png_structrp)\n                             (uint)*(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" (call_expression "(png_structrp)\n                             (uint)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(uint)" ( identifier ))) * (cast_expression "(byte *)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar21->jmp_buf_local[0]" (field_expression "ppVar21->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))))) ;) }) while (parenthesized_expression "((ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30))" ( (binary_expression "(ppVar5 != (png_structrp)0x0) &&\n                          (p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30)" (parenthesized_expression "(ppVar5 != (png_structrp)0x0)" ( (binary_expression "ppVar5 != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) && (parenthesized_expression "(p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30)" ( (comma_expression "p_Var2 = ppVar21->jmp_buf_local, ppVar5 <= ppVar30" (assignment_expression "p_Var2 = ppVar21->jmp_buf_local" identifier = (field_expression "ppVar21->jmp_buf_local" identifier -> field_identifier)) , (binary_expression "ppVar5 <= ppVar30" identifier <= identifier)) ))) )) ;) })) (expression_statement "ppVar21 = ppVar13;" (assignment_expression "ppVar21 = ppVar13" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "info_ptr = (png_inforp)ppVar32;" (assignment_expression "info_ptr = (png_inforp)ppVar32" identifier = (cast_expression "(png_inforp)ppVar32" ( (type_descriptor "png_inforp" type_identifier) ) identifier)) ;) }))) })) (goto_statement "goto LAB_0002c230;" goto statement_identifier ;) })) }))) (expression_statement "ppStack_3a8 = ppVar27;" (assignment_expression "ppStack_3a8 = ppVar27" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c);" (call_expression "(**(code **)(pcVar34 + 0x273c0))(ppVar13,iVar20 + 0x69c)" (parenthesized_expression "(**(code **)(pcVar34 + 0x273c0))" ( (pointer_expression "**(code **)(pcVar34 + 0x273c0)" * (pointer_expression "*(code **)(pcVar34 + 0x273c0)" * (cast_expression "(code **)(pcVar34 + 0x273c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x273c0)" ( (binary_expression "pcVar34 + 0x273c0" identifier + number_literal) ))))) )) (argument_list "(ppVar13,iVar20 + 0x69c)" ( identifier , (binary_expression "iVar20 + 0x69c" identifier + number_literal) ))) ;) (expression_statement "ppVar27 = ppStack_3a8;" (assignment_expression "ppVar27 = ppStack_3a8" identifier = identifier) ;) (expression_statement "png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8);" (call_expression "png_crc_finish(ppVar13,(png_uint_32)ppStack_3a8)" identifier (argument_list "(ppVar13,(png_uint_32)ppStack_3a8)" ( identifier , (cast_expression "(png_uint_32)ppStack_3a8" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "unaff_s2 = ppVar30;" (assignment_expression "unaff_s2 = ppVar30" identifier = identifier) ;) (expression_statement "info_ptr = (png_inforp)ppVar32;" (assignment_expression "info_ptr = (png_inforp)ppVar32" identifier = (cast_expression "(png_inforp)ppVar32" ( (type_descriptor "png_inforp" type_identifier) ) identifier)) ;) }) (else_clause "else {\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" else (compound_statement "{\n        png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" { (expression_statement "png_crc_finish(ppVar13,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar13,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar13,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      png_crc_finish(ppVar13,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "png_crc_finish(ppVar13,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar13,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar13,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar13,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c230:\n    pcVar35 = pcStack_3e0;" statement_identifier : (expression_statement "pcVar35 = pcStack_3e0;" (assignment_expression "pcVar35 = pcStack_3e0" identifier = identifier) ;)) (if_statement "if (pvStack_3d4 == (void *)*piVar29) {\n      return;\n    }" if (parenthesized_expression "(pvStack_3d4 == (void *)*piVar29)" ( (binary_expression "pvStack_3d4 == (void *)*piVar29" identifier == (cast_expression "(void *)*piVar29" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar29" * identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3e0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b6c)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b6c)" ( (binary_expression "pcStack_3e0 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppStack_404 = ppVar13;" (assignment_expression "ppStack_404 = ppVar13" identifier = identifier) ;) })) (expression_statement "pcVar34 = *(code **)(pcVar35 + -0x7ad4);" (assignment_expression "pcVar34 = *(code **)(pcVar35 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x7ad4)" * (cast_expression "(code **)(pcVar35 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7ad4)" ( (binary_expression "pcVar35 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = png_handle_cHRM;" (assignment_expression "pcVar36 = png_handle_cHRM" identifier = identifier) ;) (expression_statement "ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);" (assignment_expression "ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar35 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar35 + -0x7fd4)" * (cast_expression "(int *)(pcVar35 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fd4)" ( (binary_expression "pcVar35 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar35 = pcVar34 + 0x2eca8;" (assignment_expression "pcVar35 = pcVar34 + 0x2eca8" identifier = (binary_expression "pcVar34 + 0x2eca8" identifier + number_literal)) ;) (expression_statement "piVar28 = *(int **)(pcVar34 + 0x27174);" (assignment_expression "piVar28 = *(int **)(pcVar34 + 0x27174)" identifier = (pointer_expression "*(int **)(pcVar34 + 0x27174)" * (cast_expression "(int **)(pcVar34 + 0x27174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x27174)" ( (binary_expression "pcVar34 + 0x27174" identifier + number_literal) ))))) ;) (expression_statement "pvStack_40c = (void *)*piVar28;" (assignment_expression "pvStack_40c = (void *)*piVar28" identifier = (cast_expression "(void *)*piVar28" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar28" * identifier))) ;) (expression_statement "ppVar32 = ppVar21;" (assignment_expression "ppVar32 = ppVar21" identifier = identifier) ;) (expression_statement "ppVar13 = ppStack_404;" (assignment_expression "ppVar13 = ppStack_404" identifier = identifier) ;) (expression_statement "pcStack_458 = pcVar35;" (assignment_expression "pcStack_458 = pcVar35" identifier = identifier) ;) (expression_statement "piStack_400 = piVar29;" (assignment_expression "piStack_400 = piVar29" identifier = identifier) ;) (expression_statement "ppStack_3fc = unaff_s2;" (assignment_expression "ppStack_3fc = unaff_s2" identifier = identifier) ;) (expression_statement "ppStack_3f8 = ppVar22;" (assignment_expression "ppStack_3f8 = ppVar22" identifier = identifier) ;) (expression_statement "pcStack_3f4 = pcVar36;" (assignment_expression "pcStack_3f4 = pcVar36" identifier = identifier) ;) (if_statement "if ((ppVar21->mode & 1) != 0) {\n    if ((ppVar21->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar35 = pcStack_458;\n    if (pvStack_40c == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    ppVar13 = ppVar21;\n    unaff_s2 = ppVar30;\n  }" if (parenthesized_expression "((ppVar21->mode & 1) != 0)" ( (binary_expression "(ppVar21->mode & 1) != 0" (parenthesized_expression "(ppVar21->mode & 1)" ( (binary_expression "ppVar21->mode & 1" (field_expression "ppVar21->mode" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((ppVar21->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar35 = pcStack_458;\n    if (pvStack_40c == (void *)*piVar28) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    ppVar13 = ppVar21;\n    unaff_s2 = ppVar30;\n  }" { (if_statement "if ((ppVar21->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((ppVar21->mode & 6) == 0)" ( (binary_expression "(ppVar21->mode & 6) == 0" (parenthesized_expression "(ppVar21->mode & 6)" ( (binary_expression "ppVar21->mode & 6" (field_expression "ppVar21->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }" { (if_statement "if (ppVar27 == (png_structrp)0x20) {\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }\n      else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" if (parenthesized_expression "(ppVar27 == (png_structrp)0x20)" ( (binary_expression "ppVar27 == (png_structrp)0x20" identifier == (cast_expression "(png_structrp)0x20" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n        png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);\n        ppVar23 = (png_const_bytep)0x0;\n        iVar20 = png_crc_finish(ppVar21,0);\n        ppVar22 = (png_structrp)&stack0xfffffbd4;\n        if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }\n      }" { (expression_statement "png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20);" (call_expression "png_crc_read(ppVar21,(png_bytep)&stack0xfffffbd4,0x20)" identifier (argument_list "(ppVar21,(png_bytep)&stack0xfffffbd4,0x20)" ( identifier , (binary_expression "(png_bytep)&stack0xfffffbd4" (parenthesized_expression "(png_bytep)" ( identifier )) & identifier) , number_literal ))) ;) (expression_statement "ppVar23 = (png_const_bytep)0x0;" (assignment_expression "ppVar23 = (png_const_bytep)0x0" identifier = (cast_expression "(png_const_bytep)0x0" ( (type_descriptor "png_const_bytep" type_identifier) ) number_literal)) ;) (expression_statement "iVar20 = png_crc_finish(ppVar21,0);" (assignment_expression "iVar20 = png_crc_finish(ppVar21,0)" identifier = (call_expression "png_crc_finish(ppVar21,0)" identifier (argument_list "(ppVar21,0)" ( identifier , number_literal )))) ;) (expression_statement "ppVar22 = (png_structrp)&stack0xfffffbd4;" (assignment_expression "ppVar22 = (png_structrp)&stack0xfffffbd4" identifier = (binary_expression "(png_structrp)&stack0xfffffbd4" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier)) ;) (if_statement "if (iVar20 == 0) {\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n          pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);\n          pStack_434 = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);\n          pStack_430 = pVar7;\n          puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);\n          puStack_44c = puVar8;\n          puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);\n          puStack_448 = puVar9;\n          pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);\n          pStack_444 = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);\n          pStack_440 = pVar11;\n          pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);\n          pStack_43c = pVar12;\n          pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);\n          if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          ppVar32 = ppVar21;\n          (**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);\n        }" { (expression_statement "pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23);" (assignment_expression "pVar6 = png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23)" identifier = (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbd4,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbd4,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbd4" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier )))) ;) (expression_statement "pStack_434 = pVar6;" (assignment_expression "pStack_434 = pVar6" identifier = identifier) ;) (expression_statement "pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23);" (assignment_expression "pVar7 = png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23)" identifier = (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbd8,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbd8,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbd8" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier )))) ;) (expression_statement "pStack_430 = pVar7;" (assignment_expression "pStack_430 = pVar7" identifier = identifier) ;) (expression_statement "puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23);" (assignment_expression "puVar8 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23)" identifier = (cast_expression "(undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbdc,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbdc,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbdc" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier ))))) ;) (expression_statement "puStack_44c = puVar8;" (assignment_expression "puStack_44c = puVar8" identifier = identifier) ;) (expression_statement "puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23);" (assignment_expression "puVar9 = (undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23)" identifier = (cast_expression "(undefined1 *)png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbe0,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbe0,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbe0" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier ))))) ;) (expression_statement "puStack_448 = puVar9;" (assignment_expression "puStack_448 = puVar9" identifier = identifier) ;) (expression_statement "pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23);" (assignment_expression "pVar10 = png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23)" identifier = (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbe4,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbe4,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbe4" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier )))) ;) (expression_statement "pStack_444 = pVar10;" (assignment_expression "pStack_444 = pVar10" identifier = identifier) ;) (expression_statement "pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23);" (assignment_expression "pVar11 = png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23)" identifier = (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbe8,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbe8,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbe8" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier )))) ;) (expression_statement "pStack_440 = pVar11;" (assignment_expression "pStack_440 = pVar11" identifier = identifier) ;) (expression_statement "pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23);" (assignment_expression "pVar12 = png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23)" identifier = (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbec,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbec,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbec" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier )))) ;) (expression_statement "pStack_43c = pVar12;" (assignment_expression "pStack_43c = pVar12" identifier = identifier) ;) (expression_statement "pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23);" (assignment_expression "pStack_438 = png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23)" identifier = (call_expression "png_get_fixed_point((png_structrp)&stack0xfffffbf0,ppVar23)" identifier (argument_list "((png_structrp)&stack0xfffffbf0,ppVar23)" ( (binary_expression "(png_structrp)&stack0xfffffbf0" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier) , identifier )))) ;) (if_statement "if (pVar6 == -1) {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" if (parenthesized_expression "(pVar6 == -1)" ( (binary_expression "pVar6 == -1" identifier == number_literal) )) (compound_statement "{\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n          }" { (expression_statement "iVar20 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar20 = *(int *)(pcStack_458 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" else (compound_statement "{\n            iVar20 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" { (expression_statement "iVar20 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar20 = *(int *)(pcStack_458 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) ))))) ;) (if_statement "if (((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))) {\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" if (parenthesized_expression "(((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1))))" ( (binary_expression "((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))) && ((pVar12 != -1 && (pStack_438 != -1)))" (parenthesized_expression "((((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1))))" ( (binary_expression "(((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)) &&\n                ((pVar10 != -1 && (pVar11 != -1)))" (parenthesized_expression "(((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff))" ( (binary_expression "((pVar7 != -1) && (puVar8 != &DAT_ffffffff)) && (puVar9 != &DAT_ffffffff)" (parenthesized_expression "((pVar7 != -1) && (puVar8 != &DAT_ffffffff))" ( (binary_expression "(pVar7 != -1) && (puVar8 != &DAT_ffffffff)" (parenthesized_expression "(pVar7 != -1)" ( (binary_expression "pVar7 != -1" identifier != number_literal) )) && (parenthesized_expression "(puVar8 != &DAT_ffffffff)" ( (binary_expression "puVar8 != &DAT_ffffffff" identifier != (pointer_expression "&DAT_ffffffff" & identifier)) ))) )) && (parenthesized_expression "(puVar9 != &DAT_ffffffff)" ( (binary_expression "puVar9 != &DAT_ffffffff" identifier != (pointer_expression "&DAT_ffffffff" & identifier)) ))) )) && (parenthesized_expression "((pVar10 != -1 && (pVar11 != -1)))" ( (parenthesized_expression "(pVar10 != -1 && (pVar11 != -1))" ( (binary_expression "pVar10 != -1 && (pVar11 != -1)" (binary_expression "pVar10 != -1" identifier != number_literal) && (parenthesized_expression "(pVar11 != -1)" ( (binary_expression "pVar11 != -1" identifier != number_literal) ))) )) ))) )) && (parenthesized_expression "((pVar12 != -1 && (pStack_438 != -1)))" ( (parenthesized_expression "(pVar12 != -1 && (pStack_438 != -1))" ( (binary_expression "pVar12 != -1 && (pStack_438 != -1)" (binary_expression "pVar12 != -1" identifier != number_literal) && (parenthesized_expression "(pStack_438 != -1)" ( (binary_expression "pStack_438 != -1" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n              uVar1 = (ppVar21->colorspace).flags;\n              ppVar32 = ppVar21;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" { (expression_statement "uVar1 = (ppVar21->colorspace).flags;" (assignment_expression "uVar1 = (ppVar21->colorspace).flags" identifier = (field_expression "(ppVar21->colorspace).flags" (parenthesized_expression "(ppVar21->colorspace)" ( (field_expression "ppVar21->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ppVar32 = ppVar21;" (assignment_expression "ppVar32 = ppVar21" identifier = identifier) ;) (if_statement "if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" if (parenthesized_expression "(-1 < (short)uVar1)" ( (binary_expression "-1 < (short)uVar1" number_literal < (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) (compound_statement "{\n                if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" { (if_statement "if ((uVar1 & 0x10) == 0) {\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }\n                else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" if (parenthesized_expression "((uVar1 & 0x10) == 0)" ( (binary_expression "(uVar1 & 0x10) == 0" (parenthesized_expression "(uVar1 & 0x10)" ( (binary_expression "uVar1 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  (ppVar21->colorspace).flags = uVar1 | 0x10;\n                  ppVar27 = (png_structrp)&puStack_44c;\n                  png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                }" { (expression_statement "(ppVar21->colorspace).flags = uVar1 | 0x10;" (assignment_expression "(ppVar21->colorspace).flags = uVar1 | 0x10" (field_expression "(ppVar21->colorspace).flags" (parenthesized_expression "(ppVar21->colorspace)" ( (field_expression "ppVar21->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x10" identifier | number_literal)) ;) (expression_statement "ppVar27 = (png_structrp)&puStack_44c;" (assignment_expression "ppVar27 = (png_structrp)&puStack_44c" identifier = (binary_expression "(png_structrp)&puStack_44c" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier)) ;) (expression_statement "png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1);" (call_expression "png_colorspace_set_chromaticities\n                            (ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1)" identifier (argument_list "(ppVar21,&ppVar21->colorspace,(png_xy *)ppVar27,1)" ( identifier , (pointer_expression "&ppVar21->colorspace" & (field_expression "ppVar21->colorspace" identifier -> field_identifier)) , (cast_expression "(png_xy *)ppVar27" ( (type_descriptor "png_xy *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "png_colorspace_sync(ppVar21,(png_inforp)ppVar30);" (call_expression "png_colorspace_sync(ppVar21,(png_inforp)ppVar30)" identifier (argument_list "(ppVar21,(png_inforp)ppVar30)" ( identifier , (cast_expression "(png_inforp)ppVar30" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) }) (else_clause "else {\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" else (compound_statement "{\n                  (ppVar21->colorspace).flags = uVar1 | 0x8000;\n                  png_colorspace_sync(ppVar21,(png_inforp)ppVar30);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" { (expression_statement "(ppVar21->colorspace).flags = uVar1 | 0x8000;" (assignment_expression "(ppVar21->colorspace).flags = uVar1 | 0x8000" (field_expression "(ppVar21->colorspace).flags" (parenthesized_expression "(ppVar21->colorspace)" ( (field_expression "ppVar21->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar21,(png_inforp)ppVar30);" (call_expression "png_colorspace_sync(ppVar21,(png_inforp)ppVar30)" identifier (argument_list "(ppVar21,(png_inforp)ppVar30)" ( identifier , (cast_expression "(png_inforp)ppVar30" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))\n                            (ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) })) (goto_statement "goto LAB_0002c3d4;" goto statement_identifier ;) })) }))) (expression_statement "ppVar32 = ppVar21;" (assignment_expression "ppVar32 = ppVar21" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(ppVar21,iVar20 + 0x70c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar21,iVar20 + 0x70c)" ( identifier , (binary_expression "iVar20 + 0x70c" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" else (compound_statement "{\n        png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n        (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" { (expression_statement "png_crc_finish(ppVar21,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar21,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar21,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      png_crc_finish(ppVar21,(png_uint_32)ppVar27);\n      (**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "png_crc_finish(ppVar21,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar21,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar21,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar21,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c3d4:\n    pcVar35 = pcStack_458;" statement_identifier : (expression_statement "pcVar35 = pcStack_458;" (assignment_expression "pcVar35 = pcStack_458" identifier = identifier) ;)) (if_statement "if (pvStack_40c == (void *)*piVar28) {\n      return;\n    }" if (parenthesized_expression "(pvStack_40c == (void *)*piVar28)" ( (binary_expression "pvStack_40c == (void *)*piVar28" identifier == (cast_expression "(void *)*piVar28" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar28" * identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_458 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_458 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b6c)" * (cast_expression "(code **)(pcStack_458 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b6c)" ( (binary_expression "pcStack_458 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppVar13 = ppVar21;" (assignment_expression "ppVar13 = ppVar21" identifier = identifier) ;) (expression_statement "unaff_s2 = ppVar30;" (assignment_expression "unaff_s2 = ppVar30" identifier = identifier) ;) })) (expression_statement "pcVar34 = *(code **)(pcVar35 + -0x7ad4);" (assignment_expression "pcVar34 = *(code **)(pcVar35 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x7ad4)" * (cast_expression "(code **)(pcVar35 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7ad4)" ( (binary_expression "pcVar35 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar36 = png_handle_sRGB;" (assignment_expression "pcVar36 = png_handle_sRGB" identifier = identifier) ;) (expression_statement "ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4);" (assignment_expression "ppVar30 = (png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar35 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar35 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar35 + -0x7fd4)" * (cast_expression "(int *)(pcVar35 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar35 + -0x7fd4)" ( (binary_expression "pcVar35 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar35 = pcVar34 + 0x2ea14;" (assignment_expression "pcVar35 = pcVar34 + 0x2ea14" identifier = (binary_expression "pcVar34 + 0x2ea14" identifier + number_literal)) ;) (expression_statement "ppVar21 = *(png_structrp *)(pcVar34 + 0x26ee0);" (assignment_expression "ppVar21 = *(png_structrp *)(pcVar34 + 0x26ee0)" identifier = (pointer_expression "*(png_structrp *)(pcVar34 + 0x26ee0)" * (cast_expression "(png_structrp *)(pcVar34 + 0x26ee0)" ( (type_descriptor "png_structrp *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x26ee0)" ( (binary_expression "pcVar34 + 0x26ee0" identifier + number_literal) ))))) ;) (expression_statement "pvStack_47c = ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc;" (assignment_expression "pvStack_47c = ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" identifier = (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar21->jmp_buf_local[0]" (field_expression "ppVar21->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "pcStack_488 = pcVar35;" (assignment_expression "pcStack_488 = pcVar35" identifier = identifier) ;) (expression_statement "ppStack_478 = ppVar13;" (assignment_expression "ppStack_478 = ppVar13" identifier = identifier) ;) (expression_statement "piStack_474 = piVar28;" (assignment_expression "piStack_474 = piVar28" identifier = identifier) ;) (expression_statement "ppStack_470 = unaff_s2;" (assignment_expression "ppStack_470 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_46c = pcVar36;" (assignment_expression "pcStack_46c = pcVar36" identifier = identifier) ;) (if_statement "if ((ppVar32->mode & 1) == 0) {\n    info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar34 + 0x26f40))();\n    ppVar5 = ppVar32;\n  }\n  else {\n    ppVar5 = ppVar32;\n    if ((ppVar32->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    ppVar13 = ppVar32;\n    unaff_s2 = ppVar30;\n    pcVar35 = pcStack_488;\n    if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {\n      return;\n    }\n  }" if (parenthesized_expression "((ppVar32->mode & 1) == 0)" ( (binary_expression "(ppVar32->mode & 1) == 0" (parenthesized_expression "(ppVar32->mode & 1)" ( (binary_expression "ppVar32->mode & 1" (field_expression "ppVar32->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar34 + 0x26f40))();\n    ppVar5 = ppVar32;\n  }" { (expression_statement "info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4);" (assignment_expression "info_ptr_00 = (png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar34 + 0x26a40) + 0x6a4)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar34 + 0x26a40) + 0x6a4)" ( (binary_expression "*(int *)(pcVar34 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(pcVar34 + 0x26a40)" * (cast_expression "(int *)(pcVar34 + 0x26a40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x26a40)" ( (binary_expression "pcVar34 + 0x26a40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar34 + 0x26f40))();" (call_expression "(**(code **)(pcVar34 + 0x26f40))()" (parenthesized_expression "(**(code **)(pcVar34 + 0x26f40))" ( (pointer_expression "**(code **)(pcVar34 + 0x26f40)" * (pointer_expression "*(code **)(pcVar34 + 0x26f40)" * (cast_expression "(code **)(pcVar34 + 0x26f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + 0x26f40)" ( (binary_expression "pcVar34 + 0x26f40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppVar5 = ppVar32;" (assignment_expression "ppVar5 = ppVar32" identifier = identifier) ;) }) (else_clause "else {\n    ppVar5 = ppVar32;\n    if ((ppVar32->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    ppVar13 = ppVar32;\n    unaff_s2 = ppVar30;\n    pcVar35 = pcStack_488;\n    if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {\n      return;\n    }\n  }" else (compound_statement "{\n    ppVar5 = ppVar32;\n    if ((ppVar32->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    ppVar13 = ppVar32;\n    unaff_s2 = ppVar30;\n    pcVar35 = pcStack_488;\n    if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {\n      return;\n    }\n  }" { (expression_statement "ppVar5 = ppVar32;" (assignment_expression "ppVar5 = ppVar32" identifier = identifier) ;) (if_statement "if ((ppVar32->mode & 6) == 0) {\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" if (parenthesized_expression "((ppVar32->mode & 6) == 0)" ( (binary_expression "(ppVar32->mode & 6) == 0" (parenthesized_expression "(ppVar32->mode & 6)" ( (binary_expression "ppVar32->mode & 6" (field_expression "ppVar32->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }" { (if_statement "if (ppVar27 == (png_structrp)&DAT_00000001) {\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" if (parenthesized_expression "(ppVar27 == (png_structrp)&DAT_00000001)" ( (binary_expression "ppVar27 == (png_structrp)&DAT_00000001" (binary_expression "ppVar27 == (png_structrp)" identifier == (parenthesized_expression "(png_structrp)" ( identifier ))) & identifier) )) (compound_statement "{\n        png_crc_read(ppVar32,&bStack_47d,1);\n        info_ptr_00 = (png_structrp)0x0;\n        iVar20 = png_crc_finish(ppVar32,0);\n        if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }" { (expression_statement "png_crc_read(ppVar32,&bStack_47d,1);" (call_expression "png_crc_read(ppVar32,&bStack_47d,1)" identifier (argument_list "(ppVar32,&bStack_47d,1)" ( identifier , (pointer_expression "&bStack_47d" & identifier) , number_literal ))) ;) (expression_statement "info_ptr_00 = (png_structrp)0x0;" (assignment_expression "info_ptr_00 = (png_structrp)0x0" identifier = (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) ;) (expression_statement "iVar20 = png_crc_finish(ppVar32,0);" (assignment_expression "iVar20 = png_crc_finish(ppVar32,0)" identifier = (call_expression "png_crc_finish(ppVar32,0)" identifier (argument_list "(ppVar32,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar1 = (ppVar32->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" { (expression_statement "uVar1 = (ppVar32->colorspace).flags;" (assignment_expression "uVar1 = (ppVar32->colorspace).flags" identifier = (field_expression "(ppVar32->colorspace).flags" (parenthesized_expression "(ppVar32->colorspace)" ( (field_expression "ppVar32->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" if (parenthesized_expression "(-1 < (short)uVar1)" ( (binary_expression "-1 < (short)uVar1" number_literal < (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) (compound_statement "{\n            if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" { (if_statement "if ((uVar1 & 4) == 0) {\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }\n            else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              ppVar27 = (png_structrp)(uint)bStack_47d;\n              png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);\n              ppVar5 = ppVar32;\n              info_ptr_00 = ppVar30;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n            }" { (expression_statement "ppVar27 = (png_structrp)(uint)bStack_47d;" (assignment_expression "ppVar27 = (png_structrp)(uint)bStack_47d" identifier = (cast_expression "(png_structrp)(uint)bStack_47d" ( (type_descriptor "png_structrp" type_identifier) ) (cast_expression "(uint)bStack_47d" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27);" (call_expression "png_colorspace_set_sRGB(ppVar32,&ppVar32->colorspace,(int)ppVar27)" identifier (argument_list "(ppVar32,&ppVar32->colorspace,(int)ppVar27)" ( identifier , (pointer_expression "&ppVar32->colorspace" & (field_expression "ppVar32->colorspace" identifier -> field_identifier)) , (cast_expression "(int)ppVar27" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "ppVar5 = ppVar32;" (assignment_expression "ppVar5 = ppVar32" identifier = identifier) ;) (expression_statement "info_ptr_00 = ppVar30;" (assignment_expression "info_ptr_00 = ppVar30" identifier = identifier) ;) (expression_statement "png_colorspace_sync(ppVar32,(png_inforp)ppVar30);" (call_expression "png_colorspace_sync(ppVar32,(png_inforp)ppVar30)" identifier (argument_list "(ppVar32,(png_inforp)ppVar30)" ( identifier , (cast_expression "(png_inforp)ppVar30" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) }) (else_clause "else {\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" else (compound_statement "{\n              (ppVar32->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(ppVar32,(png_inforp)ppVar30);\n              info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              ppVar5 = ppVar32;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" { (expression_statement "(ppVar32->colorspace).flags = uVar1 | 0x8000;" (assignment_expression "(ppVar32->colorspace).flags = uVar1 | 0x8000" (field_expression "(ppVar32->colorspace).flags" (parenthesized_expression "(ppVar32->colorspace)" ( (field_expression "ppVar32->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar32,(png_inforp)ppVar30);" (call_expression "png_colorspace_sync(ppVar32,(png_inforp)ppVar30)" identifier (argument_list "(ppVar32,(png_inforp)ppVar30)" ( identifier , (cast_expression "(png_inforp)ppVar30" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) (expression_statement "info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);" (assignment_expression "info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" identifier = (call_expression "(png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppVar5 = ppVar32;" (assignment_expression "ppVar5 = ppVar32" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) })) }) (else_clause "else {\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" else (compound_statement "{\n        png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n        info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" { (expression_statement "png_crc_finish(ppVar32,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar32,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar32,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);" (assignment_expression "info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" identifier = (call_expression "(png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" else (compound_statement "{\n      png_crc_finish(ppVar32,(png_uint_32)ppVar27);\n      info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" { (expression_statement "png_crc_finish(ppVar32,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar32,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar32,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);" (assignment_expression "info_ptr_00 = (png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" identifier = (call_expression "(png_structrp)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "ppVar13 = ppVar32;" (assignment_expression "ppVar13 = ppVar32" identifier = identifier) ;) (expression_statement "unaff_s2 = ppVar30;" (assignment_expression "unaff_s2 = ppVar30" identifier = identifier) ;) (expression_statement "pcVar35 = pcStack_488;" (assignment_expression "pcVar35 = pcStack_488" identifier = identifier) ;) (if_statement "if (pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc) {\n      return;\n    }" if (parenthesized_expression "(pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc)" ( (binary_expression "pvStack_47c == ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" identifier == (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar21->jmp_buf_local[0]" (field_expression "ppVar21->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar36 = *(code **)(pcVar35 + -0x7b6c);" (assignment_expression "pcVar36 = *(code **)(pcVar35 + -0x7b6c)" identifier = (pointer_expression "*(code **)(pcVar35 + -0x7b6c)" * (cast_expression "(code **)(pcVar35 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar35 + -0x7b6c)" ( (binary_expression "pcVar35 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar37 = png_handle_iCCP;" (assignment_expression "pcVar37 = png_handle_iCCP" identifier = identifier) ;) (expression_statement "(*pcVar36)();" (call_expression "(*pcVar36)()" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar34 = pcVar36 + 0x2e880;" (assignment_expression "pcVar34 = pcVar36 + 0x2e880" identifier = (binary_expression "pcVar36 + 0x2e880" identifier + number_literal)) ;) (expression_statement "piVar28 = *(int **)(pcVar36 + 0x26d4c);" (assignment_expression "piVar28 = *(int **)(pcVar36 + 0x26d4c)" identifier = (pointer_expression "*(int **)(pcVar36 + 0x26d4c)" * (cast_expression "(int **)(pcVar36 + 0x26d4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar36 + 0x26d4c)" ( (binary_expression "pcVar36 + 0x26d4c" identifier + number_literal) ))))) ;) (expression_statement "ppVar30 = (png_structrp)(ppVar5->mode & 1);" (assignment_expression "ppVar30 = (png_structrp)(ppVar5->mode & 1)" identifier = (call_expression "(png_structrp)(ppVar5->mode & 1)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(ppVar5->mode & 1)" ( (binary_expression "ppVar5->mode & 1" (field_expression "ppVar5->mode" identifier -> field_identifier) & number_literal) )))) ;) (expression_statement "iStack_4c4 = *piVar28;" (assignment_expression "iStack_4c4 = *piVar28" identifier = (pointer_expression "*piVar28" * identifier)) ;) (expression_statement "ppVar32 = unaff_s2;" (assignment_expression "ppVar32 = unaff_s2" identifier = identifier) ;) (expression_statement "pcVar35 = pcVar34;" (assignment_expression "pcVar35 = pcVar34" identifier = identifier) ;) (expression_statement "ppStack_4c0 = ppVar13;" (assignment_expression "ppStack_4c0 = ppVar13" identifier = identifier) ;) (expression_statement "ppStack_4bc = ppVar21;" (assignment_expression "ppStack_4bc = ppVar21" identifier = identifier) ;) (expression_statement "ppStack_4b8 = unaff_s2;" (assignment_expression "ppStack_4b8 = unaff_s2" identifier = identifier) ;) (expression_statement "ppStack_4b4 = ppVar22;" (assignment_expression "ppStack_4b4 = ppVar22" identifier = identifier) ;) (expression_statement "ppStack_4b0 = (png_structrp)info_ptr;" (assignment_expression "ppStack_4b0 = (png_structrp)info_ptr" identifier = (cast_expression "(png_structrp)info_ptr" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "pbStack_4ac = (byte *)length;" (assignment_expression "pbStack_4ac = (byte *)length" identifier = (cast_expression "(byte *)length" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppStack_4a8 = unaff_s6;" (assignment_expression "ppStack_4a8 = unaff_s6" identifier = identifier) ;) (expression_statement "ppStack_4a4 = unaff_s7;" (assignment_expression "ppStack_4a4 = unaff_s7" identifier = identifier) ;) (expression_statement "ppStack_4a0 = unaff_s8;" (assignment_expression "ppStack_4a0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_49c = pcVar37;" (assignment_expression "pcStack_49c = pcVar37" identifier = identifier) ;) (expression_statement "appStack_490[0] = ppVar27;" (assignment_expression "appStack_490[0] = ppVar27" (subscript_expression "appStack_490[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (ppVar30 == (png_structrp)0x0) goto LAB_0002cd34;" if (parenthesized_expression "(ppVar30 == (png_structrp)0x0)" ( (binary_expression "ppVar30 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0002cd34;" goto statement_identifier ;)) (if_statement "if ((ppVar5->mode & 6) != 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }" if (parenthesized_expression "((ppVar5->mode & 6) != 0)" ( (binary_expression "(ppVar5->mode & 6) != 0" (parenthesized_expression "(ppVar5->mode & 6)" ( (binary_expression "ppVar5->mode & 6" (field_expression "ppVar5->mode" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }" { (expression_statement "png_crc_finish(ppVar5,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar5,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar5,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcVar34 + -0x7b54))" ( (pointer_expression "**(code **)(pcVar34 + -0x7b54)" * (pointer_expression "*(code **)(pcVar34 + -0x7b54)" * (cast_expression "(code **)(pcVar34 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7b54)" ( (binary_expression "pcVar34 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (if_statement "if (ppVar27 < (png_structrp)0xe) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }" if (parenthesized_expression "(ppVar27 < (png_structrp)0xe)" ( (binary_expression "ppVar27 < (png_structrp)0xe" identifier < (cast_expression "(png_structrp)0xe" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    (**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }" { (expression_statement "png_crc_finish(ppVar5,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar5,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar5,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "(**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c);" (call_expression "(**(code **)(pcVar34 + -0x7b54))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c)" (parenthesized_expression "(**(code **)(pcVar34 + -0x7b54))" ( (pointer_expression "**(code **)(pcVar34 + -0x7b54)" * (pointer_expression "*(code **)(pcVar34 + -0x7b54)" * (cast_expression "(code **)(pcVar34 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7b54)" ( (binary_expression "pcVar34 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x237c)" ( identifier , (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x237c" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (expression_statement "uVar1 = (ppVar5->colorspace).flags;" (assignment_expression "uVar1 = (ppVar5->colorspace).flags" identifier = (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    goto LAB_0002c8bc;\n  }" if (parenthesized_expression "((short)uVar1 < 0)" ( (binary_expression "(short)uVar1 < 0" (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) < number_literal) )) (compound_statement "{\n    png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n    goto LAB_0002c8bc;\n  }" { (expression_statement "png_crc_finish(ppVar5,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar5,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar5,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (if_statement "if ((uVar1 & 4) == 0) {\n    ppVar13 = (png_structrp)0x51;\n    if (ppVar27 < (png_structrp)0x51) {\n      ppVar13 = ppVar27;\n    }\n    ppVar32 = &pStack_99c;\n    ppVar27 = ppVar13;\n    png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13);\n    appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13);\n    if (appStack_490[0] < (png_structrp)0xb) {\n      FUN_0002c94c(ppVar5);\n      return;\n    }\n    pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n    if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);\n  }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    ppVar13 = (png_structrp)0x51;\n    if (ppVar27 < (png_structrp)0x51) {\n      ppVar13 = ppVar27;\n    }\n    ppVar32 = &pStack_99c;\n    ppVar27 = ppVar13;\n    png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13);\n    appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13);\n    if (appStack_490[0] < (png_structrp)0xb) {\n      FUN_0002c94c(ppVar5);\n      return;\n    }\n    pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n    if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }\n  }" { (expression_statement "ppVar13 = (png_structrp)0x51;" (assignment_expression "ppVar13 = (png_structrp)0x51" identifier = (cast_expression "(png_structrp)0x51" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) ;) (if_statement "if (ppVar27 < (png_structrp)0x51) {\n      ppVar13 = ppVar27;\n    }" if (parenthesized_expression "(ppVar27 < (png_structrp)0x51)" ( (binary_expression "ppVar27 < (png_structrp)0x51" identifier < (cast_expression "(png_structrp)0x51" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n      ppVar13 = ppVar27;\n    }" { (expression_statement "ppVar13 = ppVar27;" (assignment_expression "ppVar13 = ppVar27" identifier = identifier) ;) })) (expression_statement "ppVar32 = &pStack_99c;" (assignment_expression "ppVar32 = &pStack_99c" identifier = (pointer_expression "&pStack_99c" & identifier)) ;) (expression_statement "ppVar27 = ppVar13;" (assignment_expression "ppVar27 = ppVar13" identifier = identifier) ;) (expression_statement "png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13);" (call_expression "png_crc_read(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13)" identifier (argument_list "(ppVar5,(png_bytep)ppVar32,(png_uint_32)ppVar13)" ( identifier , (cast_expression "(png_bytep)ppVar32" ( (type_descriptor "png_bytep" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppVar13" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13);" (assignment_expression "appStack_490[0] = (png_structrp)((int)appStack_490[0] - (int)ppVar13)" (subscript_expression "appStack_490[0]" identifier [ number_literal ]) = (call_expression "(png_structrp)((int)appStack_490[0] - (int)ppVar13)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)appStack_490[0] - (int)ppVar13)" ( (binary_expression "(int)appStack_490[0] - (int)ppVar13" (cast_expression "(int)appStack_490[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "appStack_490[0]" identifier [ number_literal ])) - (cast_expression "(int)ppVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (appStack_490[0] < (png_structrp)0xb) {\n      FUN_0002c94c(ppVar5);\n      return;\n    }" if (parenthesized_expression "(appStack_490[0] < (png_structrp)0xb)" ( (binary_expression "appStack_490[0] < (png_structrp)0xb" (subscript_expression "appStack_490[0]" identifier [ number_literal ]) < (cast_expression "(png_structrp)0xb" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n      FUN_0002c94c(ppVar5);\n      return;\n    }" { (expression_statement "FUN_0002c94c(ppVar5);" (call_expression "FUN_0002c94c(ppVar5)" identifier (argument_list "(ppVar5)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);" (assignment_expression "pcVar14 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1)" identifier = (cast_expression "(char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1)" ( (binary_expression "(int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1" (cast_expression "(int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }" if (parenthesized_expression "(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0')" ( (binary_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0'" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);\n    }" { (labeled_statement "LAB_0002c974:\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);" statement_identifier : (expression_statement "ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748);" (assignment_expression "ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x748)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar34 + -0x7fd4) + 0x748)" ( (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x748" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) }) (else_clause "else {\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }" else (compound_statement "{\n      do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);\n      unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }\n      ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);\n    }" { (do_statement "do {\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      } while (ppVar13 != ppVar30);" do (compound_statement "{\n        ppVar21 = ppVar30;\n        unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        ppVar30 = ppVar21;\n        if (*pcVar14 == '\0') goto LAB_0002c86c;\n        ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);\n        if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;\n        pcVar14 = pcVar14 + 1;\n      }" { (expression_statement "ppVar21 = ppVar30;" (assignment_expression "ppVar21 = ppVar30" identifier = identifier) ;) (expression_statement "unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);" (assignment_expression "unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" identifier = (call_expression "(png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" ( (binary_expression "(int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1" (cast_expression "(int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar21->jmp_buf_local[0]" (field_expression "ppVar21->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "ppVar30 = ppVar21;" (assignment_expression "ppVar30 = ppVar21" identifier = identifier) ;) (if_statement "if (*pcVar14 == '\0') goto LAB_0002c86c;" if (parenthesized_expression "(*pcVar14 == '\0')" ( (binary_expression "*pcVar14 == '\0'" (pointer_expression "*pcVar14" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002c86c;" goto statement_identifier ;)) (expression_statement "ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1);" (assignment_expression "ppVar30 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" identifier = (call_expression "(png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1)" ( (binary_expression "(int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 1" (cast_expression "(int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar21->jmp_buf_local[0]" (field_expression "ppVar21->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (ppVar30 == (png_structrp)0x50) goto LAB_0002c974;" if (parenthesized_expression "(ppVar30 == (png_structrp)0x50)" ( (binary_expression "ppVar30 == (png_structrp)0x50" identifier == (cast_expression "(png_structrp)0x50" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0002c974;" goto statement_identifier ;)) (expression_statement "pcVar14 = pcVar14 + 1;" (assignment_expression "pcVar14 = pcVar14 + 1" identifier = (binary_expression "pcVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppVar13 != ppVar30)" ( (binary_expression "ppVar13 != ppVar30" identifier != identifier) )) ;) (expression_statement "unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2);" (assignment_expression "unaff_s6 = (png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" identifier = (call_expression "(png_structrp)((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2)" ( (binary_expression "(int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc + 2" (cast_expression "(int)&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" & (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar21->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar21->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar21->jmp_buf_local[0]" (field_expression "ppVar21->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (labeled_statement "LAB_0002c86c:\n      if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }" statement_identifier : (if_statement "if ((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }" if (parenthesized_expression "((unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0'))" ( (binary_expression "(unaff_s6 < ppVar13) &&\n         (*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')" (parenthesized_expression "(unaff_s6 < ppVar13)" ( (binary_expression "unaff_s6 < ppVar13" identifier < identifier) )) && (parenthesized_expression "(*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')" ( (binary_expression "*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0'" (pointer_expression "*(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4))" * (cast_expression "(char *)((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4))" ( (binary_expression "(int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs +\n                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)" (cast_expression "(int)unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s6->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "unaff_s6->jmp_buf_local[0].__jmpbuf[0]" (field_expression "unaff_s6->jmp_buf_local[0].__jmpbuf" (subscript_expression "unaff_s6->jmp_buf_local[0]" (field_expression "unaff_s6->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) + (cast_expression "(int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)" ( (binary_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar20 = png_inflate_claim(ppVar5,0x69434350);\n        if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }\n        ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);\n        (**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);\n        p_Var2 = ppVar30->jmp_buf_local;\n        pVar24 = ppVar5->zowner;\n        pVar19 = ppVar5->chunk_name;\n        ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));\n        pppStack_9a0 = (png_byte **)0x84;\n        (ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;\n        (ppVar5->zstream).avail_in = (uInt)ppVar30;\n        if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n        ppVar5->zowner = 0;\n        ppVar27 = appStack_490[0];\n        goto LAB_0002ca50;\n      }" { (expression_statement "iVar20 = png_inflate_claim(ppVar5,0x69434350);" (assignment_expression "iVar20 = png_inflate_claim(ppVar5,0x69434350)" identifier = (call_expression "png_inflate_claim(ppVar5,0x69434350)" identifier (argument_list "(ppVar5,0x69434350)" ( identifier , number_literal )))) ;) (if_statement "if (iVar20 != 0) {\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n          ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n          ppVar27 = appStack_490[0];\n          goto LAB_0002ca50;\n        }" { (expression_statement "ppVar32 = (png_structrp)(ppVar5->zstream).msg;" (assignment_expression "ppVar32 = (png_structrp)(ppVar5->zstream).msg" identifier = (field_expression "(png_structrp)(ppVar5->zstream).msg" (call_expression "(png_structrp)(ppVar5->zstream)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "ppVar27 = appStack_490[0];" (assignment_expression "ppVar27 = appStack_490[0]" identifier = (subscript_expression "appStack_490[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) })) (expression_statement "ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);" (assignment_expression "ppVar23 = (png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c)" identifier = (call_expression "(png_const_bytep)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c)" (parenthesized_expression "(png_const_bytep)" ( identifier )) (argument_list "((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c)" ( (binary_expression "(int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c" (cast_expression "(int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs" ( (type_descriptor "int" primitive_type) ) (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84);" (call_expression "(**(code **)(pcVar34 + -0x7c5c))(ppVar23,0,0x84)" (parenthesized_expression "(**(code **)(pcVar34 + -0x7c5c))" ( (pointer_expression "**(code **)(pcVar34 + -0x7c5c)" * (pointer_expression "*(code **)(pcVar34 + -0x7c5c)" * (cast_expression "(code **)(pcVar34 + -0x7c5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7c5c)" ( (binary_expression "pcVar34 + -0x7c5c" identifier + number_literal) ))))) )) (argument_list "(ppVar23,0,0x84)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "p_Var2 = ppVar30->jmp_buf_local;" (assignment_expression "p_Var2 = ppVar30->jmp_buf_local" identifier = (field_expression "ppVar30->jmp_buf_local" identifier -> field_identifier)) ;) (expression_statement "pVar24 = ppVar5->zowner;" (assignment_expression "pVar24 = ppVar5->zowner" identifier = (field_expression "ppVar5->zowner" identifier -> field_identifier)) ;) (expression_statement "pVar19 = ppVar5->chunk_name;" (assignment_expression "pVar19 = ppVar5->chunk_name" identifier = (field_expression "ppVar5->chunk_name" identifier -> field_identifier)) ;) (expression_statement "ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30));" (assignment_expression "ppVar30 = (png_structrp)((int)ppVar13 + (-2 - (int)ppVar30))" identifier = (call_expression "(png_structrp)((int)ppVar13 + (-2 - (int)ppVar30))" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((int)ppVar13 + (-2 - (int)ppVar30))" ( (binary_expression "(int)ppVar13 + (-2 - (int)ppVar30)" (cast_expression "(int)ppVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-2 - (int)ppVar30)" ( (binary_expression "-2 - (int)ppVar30" number_literal - (cast_expression "(int)ppVar30" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "pppStack_9a0 = (png_byte **)0x84;" (assignment_expression "pppStack_9a0 = (png_byte **)0x84" identifier = (cast_expression "(png_byte **)0x84" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "(ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local;" (assignment_expression "(ppVar5->zstream).next_in =\n             (png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local" (field_expression "(ppVar5->zstream).next_in" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)ppVar32->jmp_buf_local" (call_expression "(png_bytep)((int)&p_Var2->__jmpbuf[0].__pc + 2)" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "((int)&p_Var2->__jmpbuf[0].__pc + 2)" ( (binary_expression "(int)&p_Var2->__jmpbuf[0].__pc + 2" (cast_expression "(int)&p_Var2->__jmpbuf[0].__pc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var2->__jmpbuf[0].__pc" & (field_expression "p_Var2->__jmpbuf[0].__pc" (subscript_expression "p_Var2->__jmpbuf[0]" (field_expression "p_Var2->__jmpbuf" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) ))) + (cast_expression "(int)ppVar32->jmp_buf_local" ( (type_descriptor "int" primitive_type) ) (field_expression "ppVar32->jmp_buf_local" identifier -> field_identifier)))) ;) (expression_statement "(ppVar5->zstream).avail_in = (uInt)ppVar30;" (assignment_expression "(ppVar5->zstream).avail_in = (uInt)ppVar30" (field_expression "(ppVar5->zstream).avail_in" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uInt)ppVar30" ( (type_descriptor "uInt" type_identifier) ) identifier)) ;) (if_statement "if (pVar24 == pVar19) {\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }" if (parenthesized_expression "(pVar24 == pVar19)" ( (binary_expression "pVar24 == pVar19" identifier == identifier) )) (compound_statement "{\n          iVar20 = *(int *)(pcVar34 + -0x7e0c);\n          (ppVar5->zstream).next_out = ppVar23;\n          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;\n          (ppVar5->zstream).avail_out = 0;\n          png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );\n          if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }" { (expression_statement "iVar20 = *(int *)(pcVar34 + -0x7e0c);" (assignment_expression "iVar20 = *(int *)(pcVar34 + -0x7e0c)" identifier = (pointer_expression "*(int *)(pcVar34 + -0x7e0c)" * (cast_expression "(int *)(pcVar34 + -0x7e0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7e0c)" ( (binary_expression "pcVar34 + -0x7e0c" identifier + number_literal) ))))) ;) (expression_statement "(ppVar5->zstream).next_out = ppVar23;" (assignment_expression "(ppVar5->zstream).next_out = ppVar23" (field_expression "(ppVar5->zstream).next_out" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;" (assignment_expression "read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b" identifier = (binary_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) . field_identifier) + number_literal)) ;) (expression_statement "(ppVar5->zstream).avail_out = 0;" (assignment_expression "(ppVar5->zstream).avail_out = 0" (field_expression "(ppVar5->zstream).avail_out" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          );" (call_expression "png_inflate_read(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          )" identifier (argument_list "(ppVar5,(png_bytep)read_buffer,(uInt)appStack_490,\n                           (png_uint_32p)&pppStack_9a0,(png_bytep)0x0,in_stack_fffff634,(int)pcVar34\n                          )" ( identifier , (cast_expression "(png_bytep)read_buffer" ( (type_descriptor "png_bytep" type_identifier) ) identifier) , (cast_expression "(uInt)appStack_490" ( (type_descriptor "uInt" type_identifier) ) identifier) , (binary_expression "(png_uint_32p)&pppStack_9a0" (parenthesized_expression "(png_uint_32p)" ( identifier )) & identifier) , (cast_expression "(png_bytep)0x0" ( (type_descriptor "png_bytep" type_identifier) ) number_literal) , identifier , (cast_expression "(int)pcVar34" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (pppStack_9a0 == (png_byte **)0x0) {\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }" if (parenthesized_expression "(pppStack_9a0 == (png_byte **)0x0)" ( (binary_expression "pppStack_9a0 == (png_byte **)0x0" identifier == (cast_expression "(png_byte **)0x0" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            ppStack_9b4 = &ppVar5->colorspace;\n            ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);\n            ppVar27 = ppVar32;\n            iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );\n            if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }\n            ppVar27 = (png_structrp)&DAT_00000002;\n            ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);\n            if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }\n            goto LAB_0002c900;\n          }" { (expression_statement "ppStack_9b4 = &ppVar5->colorspace;" (assignment_expression "ppStack_9b4 = &ppVar5->colorspace" identifier = (pointer_expression "&ppVar5->colorspace" & (field_expression "ppVar5->colorspace" identifier -> field_identifier))) ;) (expression_statement "ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);" (assignment_expression "ppStack_9c0 = (png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100)" identifier = (call_expression "(png_structrp)\n                          ((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "((uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100)" ( (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +\n                          (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100" (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000\n                           + (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_" (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000 +\n                           (uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000" (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *\n                           0x1000000" (cast_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) * number_literal) + (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000" (cast_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) * number_literal)) + (cast_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier))) + (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100" (cast_expression "(uint)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs" (subscript_expression "pStack_99c.jmp_buf_local[0].__jmpbuf[0]" (field_expression "pStack_99c.jmp_buf_local[0].__jmpbuf" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier)) * number_literal)) )))) ;) (expression_statement "ppVar27 = ppVar32;" (assignment_expression "ppVar27 = ppVar32" identifier = identifier) ;) (expression_statement "iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               );" (assignment_expression "iVar15 = png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               )" identifier = (call_expression "png_icc_check_length\n                               (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               )" identifier (argument_list "(ppVar5,ppStack_9b4,(png_const_charp)ppVar32,(png_uint_32)ppStack_9c0\n                               )" ( identifier , identifier , (cast_expression "(png_const_charp)ppVar32" ( (type_descriptor "png_const_charp" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppStack_9c0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) )))) ;) (if_statement "if ((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)) {\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }" if (parenthesized_expression "((iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0))" ( (binary_expression "(iVar15 == 0) ||\n               (ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)" (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) || (parenthesized_expression "(ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0)" ( (comma_expression "ppVar27 = ppVar32,\n               iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0" (assignment_expression "ppVar27 = ppVar32" identifier = identifier) , (comma_expression "iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type),\n               iVar15 == 0" (assignment_expression "iVar15 = png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type)" identifier = (call_expression "png_icc_check_header\n                                  (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type)" identifier (argument_list "(ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                   (png_uint_32)ppStack_9c0,ppVar23,(uint)ppVar5->color_type)" ( identifier , identifier , (cast_expression "(png_const_charp)ppVar32" ( (type_descriptor "png_const_charp" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppStack_9c0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) , identifier , (cast_expression "(uint)ppVar5->color_type" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppVar5->color_type" identifier -> field_identifier)) )))) , (binary_expression "iVar15 == 0" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_0002caf4:\n              ppVar5->zowner = 0;\n              png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n              (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n              unaff_s2 = ppVar32;\n              goto LAB_0002c8bc;\n            }" { (labeled_statement "LAB_0002caf4:\n              ppVar5->zowner = 0;" statement_identifier : (expression_statement "ppVar5->zowner = 0;" (assignment_expression "ppVar5->zowner = 0" (field_expression "ppVar5->zowner" identifier -> field_identifier) = number_literal) ;)) (expression_statement "png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);" (call_expression "png_crc_finish(ppVar5,(png_uint_32)appStack_490[0])" identifier (argument_list "(ppVar5,(png_uint_32)appStack_490[0])" ( identifier , (cast_expression "(png_uint_32)appStack_490[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_490[0]" identifier [ number_literal ])) ))) ;) (expression_statement "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;" (assignment_expression "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);" (call_expression "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00)" identifier (argument_list "(ppVar5,(png_inforp)info_ptr_00)" ( identifier , (cast_expression "(png_inforp)info_ptr_00" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) (expression_statement "unaff_s2 = ppVar32;" (assignment_expression "unaff_s2 = ppVar32" identifier = identifier) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (expression_statement "ppVar27 = (png_structrp)&DAT_00000002;" (assignment_expression "ppVar27 = (png_structrp)&DAT_00000002" identifier = (binary_expression "(png_structrp)&DAT_00000002" (parenthesized_expression "(png_structrp)" ( identifier )) & identifier)) ;) (expression_statement "ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2);" (assignment_expression "ppVar30 = (png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2)" identifier = (cast_expression "(png_structrp)png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2)" ( (type_descriptor "png_structrp" type_identifier) ) (call_expression "png_read_buffer(ppVar5,(png_alloc_size_t)ppStack_9c0,2)" identifier (argument_list "(ppVar5,(png_alloc_size_t)ppStack_9c0,2)" ( identifier , (cast_expression "(png_alloc_size_t)ppStack_9c0" ( (type_descriptor "png_alloc_size_t" type_identifier) ) identifier) , number_literal ))))) ;) (if_statement "if (ppVar30 == (png_structrp)0x0) {\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }\n            else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }" if (parenthesized_expression "(ppVar30 == (png_structrp)0x0)" ( (binary_expression "ppVar30 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + -0x184);\n            }" { (expression_statement "iVar20 = *(int *)(pcVar34 + -0x7fd4);" (assignment_expression "iVar20 = *(int *)(pcVar34 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "ppVar5->zowner = 0;" (assignment_expression "ppVar5->zowner = 0" (field_expression "ppVar5->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar32 = (png_structrp)(iVar20 + -0x184);" (assignment_expression "ppVar32 = (png_structrp)(iVar20 + -0x184)" identifier = (call_expression "(png_structrp)(iVar20 + -0x184)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(iVar20 + -0x184)" ( (binary_expression "iVar20 + -0x184" identifier + number_literal) )))) ;) }) (else_clause "else {\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }" else (compound_statement "{\n              ppVar27 = ppVar30;\n              do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);\n              ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;\n              iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;\n              pppVar16 = (png_byte **)(iVar15 * 0xc);\n              pppStack_9a0 = pppVar16;\n              if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }\n              if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;\n              ppVar27 = ppVar32;\n              iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);\n              if (iVar25 == 0) goto LAB_0002caf4;\n              pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);\n              if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);\n              (ppVar5->zstream).avail_out = 0;\n              (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);\n              ppVar27 = appStack_490[0];\n              pcVar35 = pcVar34;\n              if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              pppVar16 = pppStack_9a0;\n              if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar20 = *(int *)(pcVar34 + -0x7fd4);\n              ppVar5->zowner = 0;\n              ppVar32 = (png_structrp)(iVar20 + 0x674);\n            }" { (expression_statement "ppVar27 = ppVar30;" (assignment_expression "ppVar27 = ppVar30" identifier = identifier) ;) (do_statement "do {\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              } while ((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);" do (compound_statement "{\n                ppVar31 = ppVar23 + 0x10;\n                pvVar26 = *(void **)(ppVar23 + 4);\n                iVar25 = *(int *)(ppVar23 + 8);\n                iVar15 = *(int *)(ppVar23 + 0xc);\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;\n                ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;\n                ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);\n                ppVar23 = ppVar31;\n              }" { (expression_statement "ppVar31 = ppVar23 + 0x10;" (assignment_expression "ppVar31 = ppVar23 + 0x10" identifier = (binary_expression "ppVar23 + 0x10" identifier + number_literal)) ;) (expression_statement "pvVar26 = *(void **)(ppVar23 + 4);" (assignment_expression "pvVar26 = *(void **)(ppVar23 + 4)" identifier = (pointer_expression "*(void **)(ppVar23 + 4)" * (cast_expression "(void **)(ppVar23 + 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(ppVar23 + 4)" ( (binary_expression "ppVar23 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar25 = *(int *)(ppVar23 + 8);" (assignment_expression "iVar25 = *(int *)(ppVar23 + 8)" identifier = (pointer_expression "*(int *)(ppVar23 + 8)" * (cast_expression "(int *)(ppVar23 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar23 + 8)" ( (binary_expression "ppVar23 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar15 = *(int *)(ppVar23 + 0xc);" (assignment_expression "iVar15 = *(int *)(ppVar23 + 0xc)" identifier = (pointer_expression "*(int *)(ppVar23 + 0xc)" * (cast_expression "(int *)(ppVar23 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar23 + 0xc)" ( (binary_expression "ppVar23 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23;" (assignment_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar23" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) = (pointer_expression "*(void **)ppVar23" * (cast_expression "(void **)ppVar23" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;" (assignment_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__sp" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25;" (assignment_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0] = iVar25" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15;" (assignment_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1] = iVar15" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs[1]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2);" (assignment_expression "ppVar27 = (png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2)" identifier = (call_expression "(png_structrp)(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2)" ( (binary_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs + 2" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) + number_literal) )))) ;) (expression_statement "ppVar23 = ppVar31;" (assignment_expression "ppVar23 = ppVar31" identifier = identifier) ;) }) while (parenthesized_expression "((ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a)" ( (binary_expression "(ulong *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a" (cast_expression "(ulong *)ppVar31" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (binary_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) . field_identifier) + number_literal)) )) ;) (expression_statement "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;" (assignment_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0].__pc" (subscript_expression "ppVar27->jmp_buf_local[0].__jmpbuf[0]" (field_expression "ppVar27->jmp_buf_local[0].__jmpbuf" (subscript_expression "ppVar27->jmp_buf_local[0]" (field_expression "ppVar27->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) = (pointer_expression "*(void **)ppVar31" * (cast_expression "(void **)ppVar31" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;" (assignment_expression "iVar15 = (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100" identifier = (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +\n                       (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100" (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000\n                       + (uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]" (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000\n                       + (uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000" (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000" (cast_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_" (subscript_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier)) * number_literal) + (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000" (cast_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_" (subscript_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier)) * number_literal)) + (cast_expression "(uint)(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) . field_identifier) [ number_literal ])))) + (binary_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100" (cast_expression "(uint)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_" (subscript_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask.__val" (field_expression "pStack_99c.jmp_buf_local[0].__saved_mask" (subscript_expression "pStack_99c.jmp_buf_local[0]" (field_expression "pStack_99c.jmp_buf_local" identifier . field_identifier) [ number_literal ]) . field_identifier) . field_identifier) [ number_literal ]) . field_identifier)) * number_literal))) ;) (expression_statement "pppVar16 = (png_byte **)(iVar15 * 0xc);" (assignment_expression "pppVar16 = (png_byte **)(iVar15 * 0xc)" identifier = (cast_expression "(png_byte **)(iVar15 * 0xc)" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar15 * 0xc)" ( (binary_expression "iVar15 * 0xc" identifier * number_literal) )))) ;) (expression_statement "pppStack_9a0 = pppVar16;" (assignment_expression "pppStack_9a0 = pppVar16" identifier = identifier) ;) (if_statement "if (ppVar5->zowner == ppVar5->chunk_name) {\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }\n              else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }" if (parenthesized_expression "(ppVar5->zowner == ppVar5->chunk_name)" ( (binary_expression "ppVar5->zowner == ppVar5->chunk_name" (field_expression "ppVar5->zowner" identifier -> field_identifier) == (field_expression "ppVar5->chunk_name" identifier -> field_identifier)) )) (compound_statement "{\n                (ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);\n                (ppVar5->zstream).avail_out = 0;\n                (*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);\n              }" { (expression_statement "(ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6);" (assignment_expression "(ppVar5->zstream).next_out =\n                     (Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6)" (field_expression "(ppVar5->zstream).next_out" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Bytef *)(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6)" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ppVar30->jmp_buf_local[0].__saved_mask.__val + 6)" ( (binary_expression "ppVar30->jmp_buf_local[0].__saved_mask.__val + 6" (field_expression "ppVar30->jmp_buf_local[0].__saved_mask.__val" (field_expression "ppVar30->jmp_buf_local[0].__saved_mask" (subscript_expression "ppVar30->jmp_buf_local[0]" (field_expression "ppVar30->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier) + number_literal) )))) ;) (expression_statement "(ppVar5->zstream).avail_out = 0;" (assignment_expression "(ppVar5->zstream).avail_out = 0" (field_expression "(ppVar5->zstream).avail_out" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0);" (call_expression "(*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0)" (parenthesized_expression "(*(code *)(iVar20 + -0x47c4))" ( (pointer_expression "*(code *)(iVar20 + -0x47c4)" * (cast_expression "(code *)(iVar20 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x47c4)" ( (binary_expression "iVar20 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(ppVar5,read_buffer,appStack_490,&pppStack_9a0,0)" ( identifier , identifier , identifier , (pointer_expression "&pppStack_9a0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }" else (compound_statement "{\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n              }" { (expression_statement "(ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);" (assignment_expression "(ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660)" (field_expression "(ppVar5->zstream).msg" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + -0x7fd4) + 0x660)" ( (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x660" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }))) (if_statement "if (pppStack_9a0 != (png_byte **)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pppStack_9a0 != (png_byte **)0x0)" ( (binary_expression "pppStack_9a0 != (png_byte **)0x0" identifier != (cast_expression "(png_byte **)0x0" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "ppVar27 = ppVar32;" (assignment_expression "ppVar27 = ppVar32" identifier = identifier) ;) (expression_statement "iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30);" (assignment_expression "iVar25 = png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30)" identifier = (call_expression "png_icc_check_tag_table\n                                 (ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30)" identifier (argument_list "(ppVar5,ppStack_9b4,(png_const_charp)ppVar32,\n                                  (png_uint_32)ppStack_9c0,(png_const_bytep)ppVar30)" ( identifier , identifier , (cast_expression "(png_const_charp)ppVar32" ( (type_descriptor "png_const_charp" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppStack_9c0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) , (cast_expression "(png_const_bytep)ppVar30" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) )))) ;) (if_statement "if (iVar25 == 0) goto LAB_0002caf4;" if (parenthesized_expression "(iVar25 == 0)" ( (binary_expression "iVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002caf4;" goto statement_identifier ;)) (expression_statement "pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84);" (assignment_expression "pppStack_9a0 = (png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84)" identifier = (cast_expression "(png_byte **)((int)ppStack_9c0 + iVar15 * -0xc + -0x84)" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppStack_9c0 + iVar15 * -0xc + -0x84)" ( (binary_expression "(int)ppStack_9c0 + iVar15 * -0xc + -0x84" (binary_expression "(int)ppStack_9c0 + iVar15 * -0xc" (cast_expression "(int)ppStack_9c0" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar15 * -0xc" identifier * number_literal)) + number_literal) )))) ;) (if_statement "if (ppVar5->zowner != ppVar5->chunk_name) {\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }" if (parenthesized_expression "(ppVar5->zowner != ppVar5->chunk_name)" ( (binary_expression "ppVar5->zowner != ppVar5->chunk_name" (field_expression "ppVar5->zowner" identifier -> field_identifier) != (field_expression "ppVar5->chunk_name" identifier -> field_identifier)) )) (compound_statement "{\n                (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }" { (expression_statement "(ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);" (assignment_expression "(ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660)" (field_expression "(ppVar5->zstream).msg" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + -0x7fd4) + 0x660)" ( (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x660" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_0002ccd8();" (call_expression "FUN_0002ccd8()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "(ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local);" (assignment_expression "(ppVar5->zstream).next_out =\n                   (png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local)" (field_expression "(ppVar5->zstream).next_out" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = (call_expression "(png_bytep)((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local)" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "((int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local)" ( (binary_expression "(int)(pppVar16 + 0x21) + (int)ppVar30->jmp_buf_local" (cast_expression "(int)(pppVar16 + 0x21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pppVar16 + 0x21)" ( (binary_expression "pppVar16 + 0x21" identifier + number_literal) ))) + (cast_expression "(int)ppVar30->jmp_buf_local" ( (type_descriptor "int" primitive_type) ) (field_expression "ppVar30->jmp_buf_local" identifier -> field_identifier))) )))) ;) (expression_statement "(ppVar5->zstream).avail_out = 0;" (assignment_expression "(ppVar5->zstream).avail_out = 0" (field_expression "(ppVar5->zstream).avail_out" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1);" (call_expression "(*(code *)(iVar20 + -0x47c4))(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1)" (parenthesized_expression "(*(code *)(iVar20 + -0x47c4))" ( (pointer_expression "*(code *)(iVar20 + -0x47c4)" * (cast_expression "(code *)(iVar20 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x47c4)" ( (binary_expression "iVar20 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(ppVar5,read_buffer,appStack_490,&pppStack_9a0,1)" ( identifier , identifier , identifier , (pointer_expression "&pppStack_9a0" & identifier) , number_literal ))) ;) (expression_statement "ppVar27 = appStack_490[0];" (assignment_expression "ppVar27 = appStack_490[0]" identifier = (subscript_expression "appStack_490[0]" identifier [ number_literal ])) ;) (expression_statement "pcVar35 = pcVar34;" (assignment_expression "pcVar35 = pcVar34" identifier = identifier) ;) (if_statement "if (appStack_490[0] == (png_structrp)0x0) {\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }" if (parenthesized_expression "(appStack_490[0] == (png_structrp)0x0)" ( (binary_expression "appStack_490[0] == (png_structrp)0x0" (subscript_expression "appStack_490[0]" identifier [ number_literal ]) == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n                if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }" { (if_statement "if (pppStack_9a0 == (png_byte **)0x0) goto LAB_0002cd68;" if (parenthesized_expression "(pppStack_9a0 == (png_byte **)0x0)" ( (binary_expression "pppStack_9a0 == (png_byte **)0x0" identifier == (cast_expression "(png_byte **)0x0" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0002cd68;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;) })) (expression_statement "pppVar16 = pppStack_9a0;" (assignment_expression "pppVar16 = pppStack_9a0" identifier = identifier) ;) (if_statement "if ((int)(ppVar5->flags << 0xb) < 0) goto LAB_0002cd44;" if (parenthesized_expression "((int)(ppVar5->flags << 0xb) < 0)" ( (binary_expression "(int)(ppVar5->flags << 0xb) < 0" (cast_expression "(int)(ppVar5->flags << 0xb)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppVar5->flags << 0xb)" ( (binary_expression "ppVar5->flags << 0xb" (field_expression "ppVar5->flags" identifier -> field_identifier) << number_literal) ))) < number_literal) )) (goto_statement "goto LAB_0002cd44;" goto statement_identifier ;)) (expression_statement "iVar20 = *(int *)(pcVar34 + -0x7fd4);" (assignment_expression "iVar20 = *(int *)(pcVar34 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "ppVar5->zowner = 0;" (assignment_expression "ppVar5->zowner = 0" (field_expression "ppVar5->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar32 = (png_structrp)(iVar20 + 0x674);" (assignment_expression "ppVar32 = (png_structrp)(iVar20 + 0x674)" identifier = (call_expression "(png_structrp)(iVar20 + 0x674)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(iVar20 + 0x674)" ( (binary_expression "iVar20 + 0x674" identifier + number_literal) )))) ;) }))) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) }) (else_clause "else {\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }" else (compound_statement "{\n          (ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);\n        }" { (expression_statement "(ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660);" (assignment_expression "(ppVar5->zstream).msg = (char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660)" (field_expression "(ppVar5->zstream).msg" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(*(int *)(pcVar34 + -0x7fd4) + 0x660)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + -0x7fd4) + 0x660)" ( (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x660" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }))) (labeled_statement "LAB_0002ca44:\n        ppVar32 = (png_structrp)(ppVar5->zstream).msg;" statement_identifier : (expression_statement "ppVar32 = (png_structrp)(ppVar5->zstream).msg;" (assignment_expression "ppVar32 = (png_structrp)(ppVar5->zstream).msg" identifier = (field_expression "(png_structrp)(ppVar5->zstream).msg" (call_expression "(png_structrp)(ppVar5->zstream)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) ))) . field_identifier)) ;)) (expression_statement "ppVar5->zowner = 0;" (assignment_expression "ppVar5->zowner = 0" (field_expression "ppVar5->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar27 = appStack_490[0];" (assignment_expression "ppVar27 = appStack_490[0]" identifier = (subscript_expression "appStack_490[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) }))) (expression_statement "ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730);" (assignment_expression "ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar34 + -0x7fd4) + 0x730)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar34 + -0x7fd4) + 0x730)" ( (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x730" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }))) }) (else_clause "else {\n    ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);\n  }" else (compound_statement "{\n    ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);\n  }" { (expression_statement "ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c);" (assignment_expression "ppVar32 = (png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar36 + 0x268ac) + 0x71c)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar36 + 0x268ac) + 0x71c)" ( (binary_expression "*(int *)(pcVar36 + 0x268ac) + 0x71c" (pointer_expression "*(int *)(pcVar36 + 0x268ac)" * (cast_expression "(int *)(pcVar36 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar36 + 0x268ac)" ( (binary_expression "pcVar36 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) }))) (labeled_statement "LAB_0002c900:\n  png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);" statement_identifier : (expression_statement "png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);" (call_expression "png_crc_finish(ppVar5,(png_uint_32)appStack_490[0])" identifier (argument_list "(ppVar5,(png_uint_32)appStack_490[0])" ( identifier , (cast_expression "(png_uint_32)appStack_490[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_490[0]" identifier [ number_literal ])) ))) ;)) (expression_statement "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;" (assignment_expression "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);" (call_expression "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00)" identifier (argument_list "(ppVar5,(png_inforp)info_ptr_00)" ( identifier , (cast_expression "(png_inforp)info_ptr_00" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) (labeled_statement "LAB_0002c934:\n  pcVar35 = *(code **)(pcVar34 + -0x7b54);" statement_identifier : (expression_statement "pcVar35 = *(code **)(pcVar34 + -0x7b54);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + -0x7b54)" identifier = (pointer_expression "*(code **)(pcVar34 + -0x7b54)" * (cast_expression "(code **)(pcVar34 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7b54)" ( (binary_expression "pcVar34 + -0x7b54" identifier + number_literal) ))))) ;)) (do_statement "do {\n    (*pcVar35)(ppVar5,ppVar32);\n    unaff_s2 = ppVar32;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    } while (ppVar32 == (png_structrp)0x0);\n    pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  } while( true );" do (compound_statement "{\n    (*pcVar35)(ppVar5,ppVar32);\n    unaff_s2 = ppVar32;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    } while (ppVar32 == (png_structrp)0x0);\n    pcVar35 = *(code **)(pcVar34 + -0x7b54);\n  }" { (expression_statement "(*pcVar35)(ppVar5,ppVar32);" (call_expression "(*pcVar35)(ppVar5,ppVar32)" (parenthesized_expression "(*pcVar35)" ( (pointer_expression "*pcVar35" * identifier) )) (argument_list "(ppVar5,ppVar32)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = ppVar32;" (assignment_expression "unaff_s2 = ppVar32" identifier = identifier) ;) (labeled_statement "LAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    } while (ppVar32 == (png_structrp)0x0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    } while (ppVar32 == (png_structrp)0x0);" do (compound_statement "{\n      while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }\nLAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;\n      ppVar5->zowner = 0;\n      pcVar34 = pcVar35;\nLAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);\n      (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n      unaff_s2 = ppVar32;\n    }" { (while_statement "while( true ) {\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (iStack_4c4 == *piVar28) {\n          return;\n        }\n        pcVar35 = pcVar34;\n        (**(code **)(pcVar34 + -0x7b6c))();\n        ppVar21 = info_ptr_00;\n        ppVar32 = unaff_s2;\n        unaff_s8 = ppVar5;\nLAB_0002cd34:\n        ppVar5 = unaff_s8;\n        info_ptr_00 = ppVar21;\n        pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();\nLAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;\n        (**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);\n        pcVar34 = pcVar35;\nLAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);\n        ppVar27 = ppVar30;\n        png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);\n        if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }\n        ppVar5->zowner = 0;\n        unaff_s2 = ppVar32;\n      }" { (if_statement "if (iStack_4c4 == *piVar28) {\n          return;\n        }" if (parenthesized_expression "(iStack_4c4 == *piVar28)" ( (binary_expression "iStack_4c4 == *piVar28" identifier == (pointer_expression "*piVar28" * identifier)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "pcVar35 = pcVar34;" (assignment_expression "pcVar35 = pcVar34" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar34 + -0x7b6c))();" (call_expression "(**(code **)(pcVar34 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcVar34 + -0x7b6c))" ( (pointer_expression "**(code **)(pcVar34 + -0x7b6c)" * (pointer_expression "*(code **)(pcVar34 + -0x7b6c)" * (cast_expression "(code **)(pcVar34 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7b6c)" ( (binary_expression "pcVar34 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppVar21 = info_ptr_00;" (assignment_expression "ppVar21 = info_ptr_00" identifier = identifier) ;) (expression_statement "ppVar32 = unaff_s2;" (assignment_expression "ppVar32 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s8 = ppVar5;" (assignment_expression "unaff_s8 = ppVar5" identifier = identifier) ;) (labeled_statement "LAB_0002cd34:\n        ppVar5 = unaff_s8;" statement_identifier : (expression_statement "ppVar5 = unaff_s8;" (assignment_expression "ppVar5 = unaff_s8" identifier = identifier) ;)) (expression_statement "info_ptr_00 = ppVar21;" (assignment_expression "info_ptr_00 = ppVar21" identifier = identifier) ;) (expression_statement "pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))();" (assignment_expression "pppVar16 = (png_byte **)(**(code **)(pcVar34 + -0x7ad4))()" identifier = (cast_expression "(png_byte **)(**(code **)(pcVar34 + -0x7ad4))()" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(pcVar34 + -0x7ad4))()" (parenthesized_expression "(**(code **)(pcVar34 + -0x7ad4))" ( (pointer_expression "**(code **)(pcVar34 + -0x7ad4)" * (pointer_expression "*(code **)(pcVar34 + -0x7ad4)" * (cast_expression "(code **)(pcVar34 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7ad4)" ( (binary_expression "pcVar34 + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0002cd44:\n        if (pppVar16 != (png_byte **)0x0) break;" statement_identifier : (if_statement "if (pppVar16 != (png_byte **)0x0) break;" if (parenthesized_expression "(pppVar16 != (png_byte **)0x0)" ( (binary_expression "pppVar16 != (png_byte **)0x0" identifier != (cast_expression "(png_byte **)0x0" ( (type_descriptor "png_byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (break_statement "break;" break ;))) (expression_statement "(**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674);" (call_expression "(**(code **)(pcVar34 + -0x7c88))(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674)" (parenthesized_expression "(**(code **)(pcVar34 + -0x7c88))" ( (pointer_expression "**(code **)(pcVar34 + -0x7c88)" * (pointer_expression "*(code **)(pcVar34 + -0x7c88)" * (cast_expression "(code **)(pcVar34 + -0x7c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7c88)" ( (binary_expression "pcVar34 + -0x7c88" identifier + number_literal) ))))) )) (argument_list "(ppVar5,*(int *)(pcVar34 + -0x7fd4) + 0x674)" ( identifier , (binary_expression "*(int *)(pcVar34 + -0x7fd4) + 0x674" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "pcVar34 = pcVar35;" (assignment_expression "pcVar34 = pcVar35" identifier = identifier) ;) (labeled_statement "LAB_0002cd68:\n        png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);" statement_identifier : (expression_statement "png_crc_finish(ppVar5,(png_uint_32)appStack_490[0]);" (call_expression "png_crc_finish(ppVar5,(png_uint_32)appStack_490[0])" identifier (argument_list "(ppVar5,(png_uint_32)appStack_490[0])" ( identifier , (cast_expression "(png_uint_32)appStack_490[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_490[0]" identifier [ number_literal ])) ))) ;)) (expression_statement "ppVar27 = ppVar30;" (assignment_expression "ppVar27 = ppVar30" identifier = identifier) ;) (expression_statement "png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler);" (call_expression "png_icc_set_sRGB(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler)" identifier (argument_list "(ppVar5,ppStack_9b4,(png_const_bytep)ppVar30,(ppVar5->zstream).adler)" ( identifier , identifier , (cast_expression "(png_const_bytep)ppVar30" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , (field_expression "(ppVar5->zstream).adler" (parenthesized_expression "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) )) . field_identifier) ))) ;) (if_statement "if (info_ptr_00 != (png_structrp)0x0) {\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }" if (parenthesized_expression "(info_ptr_00 != (png_structrp)0x0)" ( (binary_expression "info_ptr_00 != (png_structrp)0x0" identifier != (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n          ppVar27 = (png_structrp)0x10;\n          (**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);\n          pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;\n          if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);\n          pa_Var18 = info_ptr_00->jmp_buf_ptr;\n          uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;\n          info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;\n          ppVar5->read_buffer = (png_bytep)0x0;\n          info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);\n          info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;\n          ppVar27 = ppStack_9c0;\n          png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n        }" { (expression_statement "ppVar27 = (png_structrp)0x10;" (assignment_expression "ppVar27 = (png_structrp)0x10" identifier = (cast_expression "(png_structrp)0x10" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0);" (call_expression "(**(code **)(pcVar34 + -0x7cb0))(ppVar5,info_ptr_00,0x10,0)" (parenthesized_expression "(**(code **)(pcVar34 + -0x7cb0))" ( (pointer_expression "**(code **)(pcVar34 + -0x7cb0)" * (pointer_expression "*(code **)(pcVar34 + -0x7cb0)" * (cast_expression "(code **)(pcVar34 + -0x7cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7cb0)" ( (binary_expression "pcVar34 + -0x7cb0" identifier + number_literal) ))))) )) (argument_list "(ppVar5,info_ptr_00,0x10,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6);" (assignment_expression "pvVar17 = png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6)" identifier = (call_expression "png_malloc_base(ppVar5,(png_alloc_size_t)unaff_s6)" identifier (argument_list "(ppVar5,(png_alloc_size_t)unaff_s6)" ( identifier , (cast_expression "(png_alloc_size_t)unaff_s6" ( (type_descriptor "png_alloc_size_t" type_identifier) ) identifier) )))) ;) (expression_statement "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17;" (assignment_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2] = (ulong)pvVar17" (subscript_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[2]" (field_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val" (field_expression "info_ptr_00->jmp_buf_local[0].__saved_mask" (subscript_expression "info_ptr_00->jmp_buf_local[0]" (field_expression "info_ptr_00->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier) [ number_literal ]) = (cast_expression "(ulong)pvVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (pvVar17 == (png_voidp)0x0) {\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }" if (parenthesized_expression "(pvVar17 == (png_voidp)0x0)" ( (binary_expression "pvVar17 == (png_voidp)0x0" identifier == (cast_expression "(png_voidp)0x0" ( (type_descriptor "png_voidp" type_identifier) ) number_literal)) )) (compound_statement "{\n            (ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            uVar1 = (ppVar5->colorspace).flags;\n            ppVar5->zowner = 0;\n            (ppVar5->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);\n            ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }" { (expression_statement "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;" (assignment_expression "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);" (call_expression "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00)" identifier (argument_list "(ppVar5,(png_inforp)info_ptr_00)" ( identifier , (cast_expression "(png_inforp)info_ptr_00" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) (expression_statement "uVar1 = (ppVar5->colorspace).flags;" (assignment_expression "uVar1 = (ppVar5->colorspace).flags" identifier = (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ppVar5->zowner = 0;" (assignment_expression "ppVar5->zowner = 0" (field_expression "ppVar5->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "(ppVar5->colorspace).flags = uVar1 | 0x8000;" (assignment_expression "(ppVar5->colorspace).flags = uVar1 | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);" (call_expression "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00)" identifier (argument_list "(ppVar5,(png_inforp)info_ptr_00)" ( identifier , (cast_expression "(png_inforp)info_ptr_00" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) (expression_statement "ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184);" (assignment_expression "ppVar32 = (png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184)" identifier = (call_expression "(png_structrp)(*(int *)(pcVar34 + -0x7fd4) + -0x184)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(*(int *)(pcVar34 + -0x7fd4) + -0x184)" ( (binary_expression "*(int *)(pcVar34 + -0x7fd4) + -0x184" (pointer_expression "*(int *)(pcVar34 + -0x7fd4)" * (cast_expression "(int *)(pcVar34 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + -0x7fd4)" ( (binary_expression "pcVar34 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_0002c934;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6);" (call_expression "(**(code **)(pcVar34 + -0x7b2c))(pvVar17,ppVar32,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar34 + -0x7b2c))" ( (pointer_expression "**(code **)(pcVar34 + -0x7b2c)" * (pointer_expression "*(code **)(pcVar34 + -0x7b2c)" * (cast_expression "(code **)(pcVar34 + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7b2c)" ( (binary_expression "pcVar34 + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(pvVar17,ppVar32,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "pa_Var18 = info_ptr_00->jmp_buf_ptr;" (assignment_expression "pa_Var18 = info_ptr_00->jmp_buf_ptr" identifier = (field_expression "info_ptr_00->jmp_buf_ptr" identifier -> field_identifier)) ;) (expression_statement "uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0];" (assignment_expression "uVar4 = info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0]" identifier = (subscript_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0]" (field_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf[0]" (field_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf" (subscript_expression "info_ptr_00->jmp_buf_local[0]" (field_expression "info_ptr_00->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ])) ;) (expression_statement "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30;" (assignment_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3] = (ulong)ppVar30" (subscript_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[3]" (field_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val" (field_expression "info_ptr_00->jmp_buf_local[0].__saved_mask" (subscript_expression "info_ptr_00->jmp_buf_local[0]" (field_expression "info_ptr_00->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier) [ number_literal ]) = (cast_expression "(ulong)ppVar30" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0;" (assignment_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4] = (ulong)ppStack_9c0" (subscript_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val[4]" (field_expression "info_ptr_00->jmp_buf_local[0].__saved_mask.__val" (field_expression "info_ptr_00->jmp_buf_local[0].__saved_mask" (subscript_expression "info_ptr_00->jmp_buf_local[0]" (field_expression "info_ptr_00->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) . field_identifier) [ number_literal ]) = (cast_expression "(ulong)ppStack_9c0" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "ppVar5->read_buffer = (png_bytep)0x0;" (assignment_expression "ppVar5->read_buffer = (png_bytep)0x0" (field_expression "ppVar5->read_buffer" identifier -> field_identifier) = (cast_expression "(png_bytep)0x0" ( (type_descriptor "png_bytep" type_identifier) ) number_literal)) ;) (expression_statement "info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10);" (assignment_expression "info_ptr_00->jmp_buf_ptr = (jmp_buf *)((uint)pa_Var18 | 0x10)" (field_expression "info_ptr_00->jmp_buf_ptr" identifier -> field_identifier) = (cast_expression "(jmp_buf *)((uint)pa_Var18 | 0x10)" ( (type_descriptor "jmp_buf *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)pa_Var18 | 0x10)" ( (binary_expression "(uint)pa_Var18 | 0x10" (cast_expression "(uint)pa_Var18" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) )))) ;) (expression_statement "info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000;" (assignment_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0] = uVar4 | 0x1000" (subscript_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs[0]" (field_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf[0].__regs" (subscript_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf[0]" (field_expression "info_ptr_00->jmp_buf_local[0].__jmpbuf" (subscript_expression "info_ptr_00->jmp_buf_local[0]" (field_expression "info_ptr_00->jmp_buf_local" identifier -> field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) . field_identifier) [ number_literal ]) = (binary_expression "uVar4 | 0x1000" identifier | number_literal)) ;) (expression_statement "ppVar27 = ppStack_9c0;" (assignment_expression "ppVar27 = ppStack_9c0" identifier = identifier) ;) (expression_statement "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);" (call_expression "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00)" identifier (argument_list "(ppVar5,(png_inforp)info_ptr_00)" ( identifier , (cast_expression "(png_inforp)info_ptr_00" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) })) (expression_statement "ppVar5->zowner = 0;" (assignment_expression "ppVar5->zowner = 0" (field_expression "ppVar5->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "unaff_s2 = ppVar32;" (assignment_expression "unaff_s2 = ppVar32" identifier = identifier) ;) })) (labeled_statement "LAB_0002ce38:\n      ppVar32 = (png_structrp)(ppVar5->zstream).msg;" statement_identifier : (expression_statement "ppVar32 = (png_structrp)(ppVar5->zstream).msg;" (assignment_expression "ppVar32 = (png_structrp)(ppVar5->zstream).msg" identifier = (field_expression "(png_structrp)(ppVar5->zstream).msg" (call_expression "(png_structrp)(ppVar5->zstream)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(ppVar5->zstream)" ( (field_expression "ppVar5->zstream" identifier -> field_identifier) ))) . field_identifier)) ;)) (expression_statement "ppVar5->zowner = 0;" (assignment_expression "ppVar5->zowner = 0" (field_expression "ppVar5->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar34 = pcVar35;" (assignment_expression "pcVar34 = pcVar35" identifier = identifier) ;) (labeled_statement "LAB_0002ca50:\n      png_crc_finish(ppVar5,(png_uint_32)ppVar27);" statement_identifier : (expression_statement "png_crc_finish(ppVar5,(png_uint_32)ppVar27);" (call_expression "png_crc_finish(ppVar5,(png_uint_32)ppVar27)" identifier (argument_list "(ppVar5,(png_uint_32)ppVar27)" ( identifier , (cast_expression "(png_uint_32)ppVar27" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;)) (expression_statement "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000;" (assignment_expression "(ppVar5->colorspace).flags = (ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar5->colorspace).flags | 0x8000" (field_expression "(ppVar5->colorspace).flags" (parenthesized_expression "(ppVar5->colorspace)" ( (field_expression "ppVar5->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00);" (call_expression "png_colorspace_sync(ppVar5,(png_inforp)info_ptr_00)" identifier (argument_list "(ppVar5,(png_inforp)info_ptr_00)" ( identifier , (cast_expression "(png_inforp)info_ptr_00" ( (type_descriptor "png_inforp" type_identifier) ) identifier) ))) ;) (expression_statement "unaff_s2 = ppVar32;" (assignment_expression "unaff_s2 = ppVar32" identifier = identifier) ;) }) while (parenthesized_expression "(ppVar32 == (png_structrp)0x0)" ( (binary_expression "ppVar32 == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) ;)) (expression_statement "pcVar35 = *(code **)(pcVar34 + -0x7b54);" (assignment_expression "pcVar35 = *(code **)(pcVar34 + -0x7b54)" identifier = (pointer_expression "*(code **)(pcVar34 + -0x7b54)" * (cast_expression "(code **)(pcVar34 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar34 + -0x7b54)" ( (binary_expression "pcVar34 + -0x7b54" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}\n\n" (function_definition "void FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}" primitive_type (function_declarator "FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)" identifier (parameter_list "(byte *param_1,byte *param_2,byte *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "byte *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "undefined1 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "undefined4 uVar20;" type_identifier identifier ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "byte *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "int *piVar22;" primitive_type (pointer_declarator "*piVar22" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "byte *pbVar23;" type_identifier (pointer_declarator "*pbVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "byte *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "byte *unaff_s7;" type_identifier (pointer_declarator "*unaff_s7" * identifier) ;) (declaration "undefined *puVar27;" type_identifier (pointer_declarator "*puVar27" * identifier) ;) (declaration "code *pcVar28;" type_identifier (pointer_declarator "*pcVar28" * identifier) ;) (declaration "byte *unaff_s8;" type_identifier (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "code *pcVar30;" type_identifier (pointer_declarator "*pcVar30" * identifier) ;) (declaration "byte *pbStack_9c0;" type_identifier (pointer_declarator "*pbStack_9c0" * identifier) ;) (declaration "byte *pbStack_9b4;" type_identifier (pointer_declarator "*pbStack_9b4" * identifier) ;) (declaration "byte *pbStack_9a0;" type_identifier (pointer_declarator "*pbStack_9a0" * identifier) ;) (declaration "byte abStack_99c [84];" type_identifier (array_declarator "abStack_99c [84]" identifier [ number_literal ]) ;) (declaration "byte bStack_948;" type_identifier identifier ;) (declaration "byte bStack_947;" type_identifier identifier ;) (declaration "byte bStack_946;" type_identifier identifier ;) (declaration "byte bStack_945;" type_identifier identifier ;) (declaration "undefined4 auStack_944 [31];" type_identifier (array_declarator "auStack_944 [31]" identifier [ number_literal ]) ;) (declaration "byte bStack_8c8;" type_identifier identifier ;) (declaration "byte bStack_8c7;" type_identifier identifier ;) (declaration "byte bStack_8c6;" type_identifier identifier ;) (declaration "byte bStack_8c5;" type_identifier identifier ;) (declaration "undefined1 auStack_8c4 [1024];" type_identifier (array_declarator "auStack_8c4 [1024]" identifier [ number_literal ]) ;) (declaration "int iStack_4c4;" primitive_type identifier ;) (declaration "byte *pbStack_4c0;" type_identifier (pointer_declarator "*pbStack_4c0" * identifier) ;) (declaration "byte *pbStack_4bc;" type_identifier (pointer_declarator "*pbStack_4bc" * identifier) ;) (declaration "byte *pbStack_4b8;" type_identifier (pointer_declarator "*pbStack_4b8" * identifier) ;) (declaration "undefined1 *puStack_4b4;" type_identifier (pointer_declarator "*puStack_4b4" * identifier) ;) (declaration "byte *pbStack_4b0;" type_identifier (pointer_declarator "*pbStack_4b0" * identifier) ;) (declaration "byte *pbStack_4ac;" type_identifier (pointer_declarator "*pbStack_4ac" * identifier) ;) (declaration "byte *pbStack_4a8;" type_identifier (pointer_declarator "*pbStack_4a8" * identifier) ;) (declaration "byte *pbStack_4a4;" type_identifier (pointer_declarator "*pbStack_4a4" * identifier) ;) (declaration "byte *pbStack_4a0;" type_identifier (pointer_declarator "*pbStack_4a0" * identifier) ;) (declaration "code *pcStack_49c;" type_identifier (pointer_declarator "*pcStack_49c" * identifier) ;) (declaration "byte *apbStack_490 [2];" type_identifier (pointer_declarator "*apbStack_490 [2]" * (array_declarator "apbStack_490 [2]" identifier [ number_literal ])) ;) (declaration "code *pcStack_488;" type_identifier (pointer_declarator "*pcStack_488" * identifier) ;) (declaration "byte bStack_47d;" type_identifier identifier ;) (declaration "int iStack_47c;" primitive_type identifier ;) (declaration "byte *pbStack_478;" type_identifier (pointer_declarator "*pbStack_478" * identifier) ;) (declaration "int *piStack_474;" primitive_type (pointer_declarator "*piStack_474" * identifier) ;) (declaration "byte *pbStack_470;" type_identifier (pointer_declarator "*pbStack_470" * identifier) ;) (declaration "code *pcStack_46c;" type_identifier (pointer_declarator "*pcStack_46c" * identifier) ;) (declaration "code *pcStack_458;" type_identifier (pointer_declarator "*pcStack_458" * identifier) ;) (declaration "int iStack_44c;" primitive_type identifier ;) (declaration "int iStack_448;" primitive_type identifier ;) (declaration "int iStack_444;" primitive_type identifier ;) (declaration "int iStack_440;" primitive_type identifier ;) (declaration "int iStack_43c;" primitive_type identifier ;) (declaration "int iStack_438;" primitive_type identifier ;) (declaration "int iStack_434;" primitive_type identifier ;) (declaration "int iStack_430;" primitive_type identifier ;) (declaration "undefined1 auStack_42c [4];" type_identifier (array_declarator "auStack_42c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_428 [4];" type_identifier (array_declarator "auStack_428 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_424 [4];" type_identifier (array_declarator "auStack_424 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_420 [4];" type_identifier (array_declarator "auStack_420 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_41c [4];" type_identifier (array_declarator "auStack_41c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_418 [4];" type_identifier (array_declarator "auStack_418 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_414 [4];" type_identifier (array_declarator "auStack_414 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_410 [4];" type_identifier (array_declarator "auStack_410 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_40c;" primitive_type identifier ;) (declaration "byte *pbStack_404;" type_identifier (pointer_declarator "*pbStack_404" * identifier) ;) (declaration "int *piStack_400;" primitive_type (pointer_declarator "*piStack_400" * identifier) ;) (declaration "byte *pbStack_3fc;" type_identifier (pointer_declarator "*pbStack_3fc" * identifier) ;) (declaration "undefined1 *puStack_3f8;" type_identifier (pointer_declarator "*puStack_3f8" * identifier) ;) (declaration "code *pcStack_3f4;" type_identifier (pointer_declarator "*pcStack_3f4" * identifier) ;) (declaration "code *pcStack_3e0;" type_identifier (pointer_declarator "*pcStack_3e0" * identifier) ;) (declaration "byte abStack_3d8 [4];" type_identifier (array_declarator "abStack_3d8 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_3d4;" primitive_type identifier ;) (declaration "byte *pbStack_3cc;" type_identifier (pointer_declarator "*pbStack_3cc" * identifier) ;) (declaration "int *piStack_3c8;" primitive_type (pointer_declarator "*piStack_3c8" * identifier) ;) (declaration "byte *pbStack_3c4;" type_identifier (pointer_declarator "*pbStack_3c4" * identifier) ;) (declaration "undefined *puStack_3c0;" type_identifier (pointer_declarator "*puStack_3c0" * identifier) ;) (declaration "byte *pbStack_3bc;" type_identifier (pointer_declarator "*pbStack_3bc" * identifier) ;) (declaration "byte *pbStack_3b8;" type_identifier (pointer_declarator "*pbStack_3b8" * identifier) ;) (declaration "code *pcStack_3b4;" type_identifier (pointer_declarator "*pcStack_3b4" * identifier) ;) (declaration "byte *pbStack_3a8;" type_identifier (pointer_declarator "*pbStack_3a8" * identifier) ;) (declaration "code *pcStack_3a0;" type_identifier (pointer_declarator "*pcStack_3a0" * identifier) ;) (declaration "undefined auStack_398 [4];" type_identifier (array_declarator "auStack_398 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_394;" primitive_type identifier ;) (declaration "byte *pbStack_38c;" type_identifier (pointer_declarator "*pbStack_38c" * identifier) ;) (declaration "byte *pbStack_388;" type_identifier (pointer_declarator "*pbStack_388" * identifier) ;) (declaration "byte *pbStack_384;" type_identifier (pointer_declarator "*pbStack_384" * identifier) ;) (declaration "undefined *puStack_380;" type_identifier (pointer_declarator "*puStack_380" * identifier) ;) (declaration "code *pcStack_37c;" type_identifier (pointer_declarator "*pcStack_37c" * identifier) ;) (declaration "undefined *puStack_368;" type_identifier (pointer_declarator "*puStack_368" * identifier) ;) (declaration "byte *pbStack_35c;" type_identifier (pointer_declarator "*pbStack_35c" * identifier) ;) (declaration "byte *pbStack_358;" type_identifier (pointer_declarator "*pbStack_358" * identifier) ;) (declaration "code *pcStack_354;" type_identifier (pointer_declarator "*pcStack_354" * identifier) ;) (declaration "int local_334;" primitive_type identifier ;) (declaration "byte local_330 [768];" type_identifier (array_declarator "local_330 [768]" identifier [ number_literal ]) ;) (declaration "byte local_30;" type_identifier identifier ;) (declaration "byte local_2f;" type_identifier identifier ;) (declaration "byte local_2e;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar25 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar25 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "uVar3 = *(uint *)(param_1 + 0x124);" (assignment_expression "uVar3 = *(uint *)(param_1 + 0x124)" identifier = (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000534bc" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000534bc" * (cast_expression "(int *)PTR___stack_chk_guard_000534bc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar19 = param_3;" (assignment_expression "pbVar19 = param_3" identifier = identifier) ;) (if_statement "if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" if (parenthesized_expression "((uVar3 & 1) == 0)" ( (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" ( (binary_expression "uVar3 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }" { (labeled_statement "LAB_0002bebc:\n    param_3 = unaff_s5;" statement_identifier : (expression_statement "param_3 = unaff_s5;" (assignment_expression "param_3 = unaff_s5" identifier = identifier) ;)) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) }) (else_clause "else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" else (compound_statement "{\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" { (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (if_statement "if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }" if (parenthesized_expression "((uVar3 & 2) != 0)" ( (binary_expression "(uVar3 & 2) != 0" (parenthesized_expression "(uVar3 & 2)" ( (binary_expression "uVar3 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }" { (labeled_statement "LAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();" statement_identifier : (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (expression_statement "param_1 = pbVar24;" (assignment_expression "param_1 = pbVar24" identifier = identifier) ;) (goto_statement "goto LAB_0002bebc;" goto statement_identifier ;) })) (expression_statement "unaff_s1 = param_1;" (assignment_expression "unaff_s1 = param_1" identifier = identifier) ;) (if_statement "if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }" if (parenthesized_expression "((uVar3 & 4) != 0)" ( (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" ( (binary_expression "uVar3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }" { (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x68c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x68c" identifier + number_literal) ))) ;) (labeled_statement "LAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar25) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar25)" ( (binary_expression "local_2c == *(int *)puVar25" identifier == (pointer_expression "*(int *)puVar25" * (cast_expression "(int *)puVar25" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) }))) (expression_statement "(*(code *)PTR___stack_chk_fail_00053484)();" (call_expression "(*(code *)PTR___stack_chk_fail_00053484)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00053484)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00053484" * (cast_expression "(code *)PTR___stack_chk_fail_00053484" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "unaff_s5 = param_3;" (assignment_expression "unaff_s5 = param_3" identifier = identifier) ;) (goto_statement "goto LAB_0002beac;" goto statement_identifier ;) })) (expression_statement "*(uint *)(param_1 + 0x124) = uVar3 | 2;" (assignment_expression "*(uint *)(param_1 + 0x124) = uVar3 | 2" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = (binary_expression "uVar3 | 2" identifier | number_literal)) ;) (if_statement "if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "((param_1[0x1ff] & 2) == 0)" ( (binary_expression "(param_1[0x1ff] & 2) == 0" (parenthesized_expression "(param_1[0x1ff] & 2)" ( (binary_expression "param_1[0x1ff] & 2" (subscript_expression "param_1[0x1ff]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" { (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6b4)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6b4" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) (expression_statement "unaff_s2 = (byte *)0xaaaa0000;" (assignment_expression "unaff_s2 = (byte *)0xaaaa0000" identifier = (cast_expression "(byte *)0xaaaa0000" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3)))" ( (binary_expression "(param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))" (parenthesized_expression "(param_3 < &DAT_00000301)" ( (binary_expression "param_3 < &DAT_00000301" identifier < (pointer_expression "&DAT_00000301" & identifier)) )) && (parenthesized_expression "(unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))" ( (comma_expression "unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3)" (assignment_expression "unaff_s2 = (byte *)((uint)param_3 / 3)" identifier = (cast_expression "(byte *)((uint)param_3 / 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)param_3 / 3)" ( (binary_expression "(uint)param_3 / 3" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) / number_literal) )))) , (binary_expression "param_3 == (byte *)((int)unaff_s2 * 3)" identifier == (cast_expression "(byte *)((int)unaff_s2 * 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s2 * 3)" ( (binary_expression "(int)unaff_s2 * 3" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) ))))) ))) )) (compound_statement "{\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" { (expression_statement "local_334 = (int)unaff_s2 << 1;" (assignment_expression "local_334 = (int)unaff_s2 << 1" identifier = (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (if_statement "if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" if (parenthesized_expression "(param_1[0x1ff] == 3)" ( (binary_expression "param_1[0x1ff] == 3" (subscript_expression "param_1[0x1ff]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }" { (expression_statement "pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));" (assignment_expression "pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f))" identifier = (cast_expression "(byte *)(1 << (param_1[0x200] & 0x1f))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(1 << (param_1[0x200] & 0x1f))" ( (binary_expression "1 << (param_1[0x200] & 0x1f)" number_literal << (parenthesized_expression "(param_1[0x200] & 0x1f)" ( (binary_expression "param_1[0x200] & 0x1f" (subscript_expression "param_1[0x200]" identifier [ number_literal ]) & number_literal) ))) )))) ;) (if_statement "if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }" if (parenthesized_expression "((int)pbVar19 < (int)unaff_s2)" ( (binary_expression "(int)pbVar19 < (int)unaff_s2" (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          unaff_s2 = pbVar19;\n        }" { (expression_statement "unaff_s2 = pbVar19;" (assignment_expression "unaff_s2 = pbVar19" identifier = identifier) ;) })) (expression_statement "local_334 = (int)unaff_s2 << 1;" (assignment_expression "local_334 = (int)unaff_s2 << 1" identifier = (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal)) ;) (if_statement "if (0 < (int)unaff_s2) goto LAB_0002bc70;" if (parenthesized_expression "(0 < (int)unaff_s2)" ( (binary_expression "0 < (int)unaff_s2" number_literal < (cast_expression "(int)unaff_s2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_0002bc70;" goto statement_identifier ;)) }) (else_clause "else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" else (if_statement "if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" if (parenthesized_expression "(unaff_s2 != (byte *)0x0)" ( (binary_expression "unaff_s2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" { (labeled_statement "LAB_0002bc70:\n        unaff_s7 = &local_30;" statement_identifier : (expression_statement "unaff_s7 = &local_30;" (assignment_expression "unaff_s7 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;)) (expression_statement "unaff_s6 = local_330 + (int)(unaff_s2 + local_334);" (assignment_expression "unaff_s6 = local_330 + (int)(unaff_s2 + local_334)" identifier = (binary_expression "local_330 + (int)(unaff_s2 + local_334)" identifier + (cast_expression "(int)(unaff_s2 + local_334)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s2 + local_334)" ( (binary_expression "unaff_s2 + local_334" identifier + identifier) ))))) ;) (expression_statement "pbVar19 = local_330;" (assignment_expression "pbVar19 = local_330" identifier = identifier) ;) (do_statement "do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);" do (compound_statement "{\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        }" { (expression_statement "FUN_0002aef8(param_1,unaff_s7,3);" (call_expression "FUN_0002aef8(param_1,unaff_s7,3)" identifier (argument_list "(param_1,unaff_s7,3)" ( identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s0 = pbVar19 + 3;" (assignment_expression "unaff_s0 = pbVar19 + 3" identifier = (binary_expression "pbVar19 + 3" identifier + number_literal)) ;) (expression_statement "*pbVar19 = local_30;" (assignment_expression "*pbVar19 = local_30" (pointer_expression "*pbVar19" * identifier) = identifier) ;) (expression_statement "pbVar19[1] = local_2f;" (assignment_expression "pbVar19[1] = local_2f" (subscript_expression "pbVar19[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar19[2] = local_2e;" (assignment_expression "pbVar19[2] = local_2e" (subscript_expression "pbVar19[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pbVar19 = unaff_s0;" (assignment_expression "pbVar19 = unaff_s0" identifier = identifier) ;) }) while (parenthesized_expression "(unaff_s6 != unaff_s0)" ( (binary_expression "unaff_s6 != unaff_s0" identifier != identifier) )) ;) })))) (expression_statement "unaff_s8 = local_330;" (assignment_expression "unaff_s8 = local_330" identifier = identifier) ;) (expression_statement "FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));" (call_expression "FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334))" identifier (argument_list "(param_1,(int)param_3 - (int)(unaff_s2 + local_334))" ( identifier , (binary_expression "(int)param_3 - (int)(unaff_s2 + local_334)" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(unaff_s2 + local_334)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s2 + local_334)" ( (binary_expression "unaff_s2 + local_334" identifier + identifier) )))) ))) ;) (expression_statement "pbVar19 = unaff_s8;" (assignment_expression "pbVar19 = unaff_s8" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);" (call_expression "(*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2)" (parenthesized_expression "(*(code *)PTR_png_set_PLTE_000533d0)" ( (pointer_expression "*(code *)PTR_png_set_PLTE_000533d0" * (cast_expression "(code *)PTR_png_set_PLTE_000533d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,param_2,unaff_s8,unaff_s2)" ( identifier , identifier , identifier , identifier ))) ;) (if_statement "if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" if (parenthesized_expression "(*(short *)(param_1 + 0x1f8) == 0)" ( (binary_expression "*(short *)(param_1 + 0x1f8) == 0" (pointer_expression "*(short *)(param_1 + 0x1f8)" * (cast_expression "(short *)(param_1 + 0x1f8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1f8)" ( (binary_expression "param_1 + 0x1f8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }" { (if_statement "if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" if (parenthesized_expression "(param_2 != (byte *)0x0)" ( (binary_expression "param_2 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" { (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;" if (parenthesized_expression "((uVar3 & 0x10) != 0)" ( (binary_expression "(uVar3 & 0x10) != 0" (parenthesized_expression "(uVar3 & 0x10)" ( (binary_expression "uVar3 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0002bd04;" goto statement_identifier ;)) (goto_statement "goto LAB_0002bd24;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" else (compound_statement "{\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" { (expression_statement "param_1[0x1f8] = 0;" (assignment_expression "param_1[0x1f8] = 0" (subscript_expression "param_1[0x1f8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[0x1f9] = 0;" (assignment_expression "param_1[0x1f9] = 0" (subscript_expression "param_1[0x1f9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }" { (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6d0)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6d0" identifier + number_literal) ))) ;) }) (else_clause "else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" else (compound_statement "{\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" { (labeled_statement "LAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;" statement_identifier : (expression_statement "puVar2 = PTR_png_chunk_benign_error_0005349c;" (assignment_expression "puVar2 = PTR_png_chunk_benign_error_0005349c" identifier = identifier) ;)) (expression_statement "puVar27 = PTR_s_nt_0005301c;" (assignment_expression "puVar27 = PTR_s_nt_0005301c" identifier = identifier) ;) (expression_statement "param_2[0x16] = 0;" (assignment_expression "param_2[0x16] = 0" (subscript_expression "param_2[0x16]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_2[0x17] = 0;" (assignment_expression "param_2[0x17] = 0" (subscript_expression "param_2[0x17]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)puVar2)(param_1,puVar27 + 0x6d0);" (call_expression "(*(code *)puVar2)(param_1,puVar27 + 0x6d0)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,puVar27 + 0x6d0)" ( identifier , (binary_expression "puVar27 + 0x6d0" identifier + number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" statement_identifier : (if_statement "if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" if (parenthesized_expression "((uVar3 & 0x40) != 0)" ( (binary_expression "(uVar3 & 0x40) != 0" (parenthesized_expression "(uVar3 & 0x40)" ( (binary_expression "uVar3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6e4)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6e4" identifier + number_literal) ))) ;) (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" identifier = (pointer_expression "*(uint *)(param_2 + 8)" * (cast_expression "(uint *)(param_2 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 8)" ( (binary_expression "param_2 + 8" identifier + number_literal) ))))) ;) }))) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (if_statement "if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }" if (parenthesized_expression "((uVar3 & 0x20) != 0)" ( (binary_expression "(uVar3 & 0x20) != 0" (parenthesized_expression "(uVar3 & 0x20)" ( (binary_expression "uVar3 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6f8)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x6f8" identifier + number_literal) ))) ;) })) }))) }))) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" identifier (argument_list "(param_1,param_3)" ( identifier , identifier ))) ;) (if_statement "if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" if (parenthesized_expression "(param_1[0x1ff] != 3)" ( (binary_expression "param_1[0x1ff] != 3" (subscript_expression "param_1[0x1ff]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" { (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" ( (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" * (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_s_nt_0005301c + 0x69c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x69c" identifier + number_literal) ))) ;) (goto_statement "goto LAB_0002bd88;" goto statement_identifier ;) })) }))) (expression_statement "pcVar29 = FUN_0002bedc;" (assignment_expression "pcVar29 = FUN_0002bedc" identifier = identifier) ;) (expression_statement "puVar27 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar27 = PTR_png_chunk_error_0005351c" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" ( (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" * (cast_expression "(code *)PTR_png_chunk_error_0005351c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_368 = puVar27 + 0x2f114;" (assignment_expression "puStack_368 = puVar27 + 0x2f114" identifier = (binary_expression "puVar27 + 0x2f114" identifier + number_literal)) ;) (expression_statement "pbStack_35c = unaff_s0;" (assignment_expression "pbStack_35c = unaff_s0" identifier = identifier) ;) (expression_statement "pbStack_358 = unaff_s1;" (assignment_expression "pbStack_358 = unaff_s1" identifier = identifier) ;) (expression_statement "pcStack_354 = pcVar29;" (assignment_expression "pcStack_354 = pcVar29" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 5) == 5)" ( (binary_expression "(*(uint *)(param_1 + 0x124) & 5) == 5" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 5)" ( (binary_expression "*(uint *)(param_1 + 0x124) & 5" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" { (expression_statement "*(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;" (assignment_expression "*(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x124) | 0x18" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (if_statement "if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" if (parenthesized_expression "(pbVar19 != (byte *)0x0)" ( (binary_expression "pbVar19 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" { (expression_statement "(**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(puStack_368 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_368 + -0x7b54)" * (pointer_expression "*(code **)(puStack_368 + -0x7b54)" * (cast_expression "(code **)(puStack_368 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_368 + -0x7b54)" ( (binary_expression "puStack_368 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(puStack_368 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_368 + -0x7fd4)" * (cast_expression "(int *)(puStack_368 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_368 + -0x7fd4)" ( (binary_expression "puStack_368 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })) (expression_statement "pcVar28 = *(code **)(puVar27 + 0x27640);" (assignment_expression "pcVar28 = *(code **)(puVar27 + 0x27640)" identifier = (pointer_expression "*(code **)(puVar27 + 0x27640)" * (cast_expression "(code **)(puVar27 + 0x27640)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar27 + 0x27640)" ( (binary_expression "puVar27 + 0x27640" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002bf78;" (assignment_expression "pcVar30 = FUN_0002bf78" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);" (assignment_expression "pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c)" identifier = (cast_expression "(byte *)(*(int *)(puVar27 + 0x27140) + 0x68c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar27 + 0x27140) + 0x68c)" ( (binary_expression "*(int *)(puVar27 + 0x27140) + 0x68c" (pointer_expression "*(int *)(puVar27 + 0x27140)" * (cast_expression "(int *)(puVar27 + 0x27140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar27 + 0x27140)" ( (binary_expression "puVar27 + 0x27140" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2f078;" (assignment_expression "pcVar29 = pcVar28 + 0x2f078" identifier = (binary_expression "pcVar28 + 0x2f078" identifier + number_literal)) ;) (expression_statement "piVar21 = *(int **)(pcVar28 + 0x27544);" (assignment_expression "piVar21 = *(int **)(pcVar28 + 0x27544)" identifier = (pointer_expression "*(int **)(pcVar28 + 0x27544)" * (cast_expression "(int **)(pcVar28 + 0x27544)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x27544)" ( (binary_expression "pcVar28 + 0x27544" identifier + number_literal) ))))) ;) (expression_statement "puStack_380 = puVar25;" (assignment_expression "puStack_380 = puVar25" identifier = identifier) ;) (expression_statement "iStack_394 = *piVar21;" (assignment_expression "iStack_394 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (expression_statement "pbStack_3cc = unaff_s0;" (assignment_expression "pbStack_3cc = unaff_s0" identifier = identifier) ;) (expression_statement "pcStack_3a0 = pcVar29;" (assignment_expression "pcStack_3a0 = pcVar29" identifier = identifier) ;) (expression_statement "pbStack_38c = unaff_s0;" (assignment_expression "pbStack_38c = unaff_s0" identifier = identifier) ;) (expression_statement "pbStack_388 = unaff_s1;" (assignment_expression "pbStack_388 = unaff_s1" identifier = identifier) ;) (expression_statement "pbStack_384 = unaff_s2;" (assignment_expression "pbStack_384 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_37c = pcVar30;" (assignment_expression "pcStack_37c = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }" if (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 1) != 0)" ( (binary_expression "(*(uint *)(param_1 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 1)" ( (binary_expression "*(uint *)(param_1 + 0x124) & 1" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }" { (if_statement "if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 6)" ( (binary_expression "*(uint *)(param_1 + 0x124) & 6" (pointer_expression "*(uint *)(param_1 + 0x124)" * (cast_expression "(uint *)(param_1 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }" { (if_statement "if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" if (parenthesized_expression "(pbVar19 == &DAT_00000004)" ( (binary_expression "pbVar19 == &DAT_00000004" identifier == (pointer_expression "&DAT_00000004" & identifier)) )) (compound_statement "{\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }" { (expression_statement "puVar25 = auStack_398;" (assignment_expression "puVar25 = auStack_398" identifier = identifier) ;) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = FUN_0002b068(param_1,0);" (assignment_expression "iVar15 = FUN_0002b068(param_1,0)" identifier = (call_expression "FUN_0002b068(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }" { (expression_statement "pbVar19 = (byte *)FUN_0002acb0(puVar25);" (assignment_expression "pbVar19 = (byte *)FUN_0002acb0(puVar25)" identifier = (cast_expression "(byte *)FUN_0002acb0(puVar25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002acb0(puVar25)" identifier (argument_list "(puVar25)" ( identifier ))))) ;) (expression_statement "FUN_00018078(param_1,param_1 + 0x398);" (call_expression "FUN_00018078(param_1,param_1 + 0x398)" identifier (argument_list "(param_1,param_1 + 0x398)" ( identifier , (binary_expression "param_1 + 0x398" identifier + number_literal) ))) ;) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" identifier = identifier) ;) (expression_statement "FUN_00015834(param_1,pbVar13);" (call_expression "FUN_00015834(param_1,pbVar13)" identifier (argument_list "(param_1,pbVar13)" ( identifier , identifier ))) ;) })) }) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" else (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b54)" ( (binary_expression "pcStack_3a0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" ( (binary_expression "pcStack_3a0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b54)" ( (binary_expression "pcStack_3a0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" ( (binary_expression "pcStack_3a0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (expression_statement "pcVar29 = pcStack_3a0;" (assignment_expression "pcVar29 = pcStack_3a0" identifier = identifier) ;) (if_statement "if (iStack_394 == *piVar21) {\n      return;\n    }" if (parenthesized_expression "(iStack_394 == *piVar21)" ( (binary_expression "iStack_394 == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3a0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_3a0 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_3a0 + -0x7b6c)" * (cast_expression "(code **)(pcStack_3a0 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3a0 + -0x7b6c)" ( (binary_expression "pcStack_3a0 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbStack_3cc = param_1;" (assignment_expression "pbStack_3cc = param_1" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar13;" (assignment_expression "unaff_s2 = pbVar13" identifier = identifier) ;) })) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" * (cast_expression "(code **)(pcVar29 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7ad4)" ( (binary_expression "pcVar29 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002c0dc;" (assignment_expression "pcVar30 = FUN_0002c0dc" identifier = identifier) ;) (expression_statement "puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" identifier = (cast_expression "(undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" * (cast_expression "(int *)(pcVar29 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + -0x7fd4)" ( (binary_expression "pcVar29 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2ef14;" (assignment_expression "pcVar29 = pcVar28 + 0x2ef14" identifier = (binary_expression "pcVar28 + 0x2ef14" identifier + number_literal)) ;) (expression_statement "piVar22 = *(int **)(pcVar28 + 0x273e0);" (assignment_expression "piVar22 = *(int **)(pcVar28 + 0x273e0)" identifier = (pointer_expression "*(int **)(pcVar28 + 0x273e0)" * (cast_expression "(int **)(pcVar28 + 0x273e0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x273e0)" ( (binary_expression "pcVar28 + 0x273e0" identifier + number_literal) ))))) ;) (expression_statement "iStack_3d4 = *piVar22;" (assignment_expression "iStack_3d4 = *piVar22" identifier = (pointer_expression "*piVar22" * identifier)) ;) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" identifier = identifier) ;) (expression_statement "pbStack_404 = pbStack_3cc;" (assignment_expression "pbStack_404 = pbStack_3cc" identifier = identifier) ;) (expression_statement "pcStack_3e0 = pcVar29;" (assignment_expression "pcStack_3e0 = pcVar29" identifier = identifier) ;) (expression_statement "piStack_3c8 = piVar21;" (assignment_expression "piStack_3c8 = piVar21" identifier = identifier) ;) (expression_statement "pbStack_3c4 = unaff_s2;" (assignment_expression "pbStack_3c4 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_3c0 = puVar25;" (assignment_expression "puStack_3c0 = puVar25" identifier = identifier) ;) (expression_statement "pbStack_3bc = param_2;" (assignment_expression "pbStack_3bc = param_2" identifier = identifier) ;) (expression_statement "pbStack_3b8 = param_3;" (assignment_expression "pbStack_3b8 = param_3" identifier = identifier) ;) (expression_statement "pcStack_3b4 = pcVar30;" (assignment_expression "pcStack_3b4 = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 1) != 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }" { (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }" { (if_statement "if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" if (parenthesized_expression "((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0))" ( (binary_expression "(puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)" (parenthesized_expression "(puVar14 == (undefined1 *)0x0)" ( (binary_expression "puVar14 == (undefined1 *)0x0" identifier == (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*(uint *)(puVar14 + 8) & 2) == 0)" ( (binary_expression "(*(uint *)(puVar14 + 8) & 2) == 0" (parenthesized_expression "(*(uint *)(puVar14 + 8) & 2)" ( (binary_expression "*(uint *)(puVar14 + 8) & 2" (pointer_expression "*(uint *)(puVar14 + 8)" * (cast_expression "(uint *)(puVar14 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar14 + 8)" ( (binary_expression "puVar14 + 8" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }" { (expression_statement "param_2 = (byte *)0x3;" (assignment_expression "param_2 = (byte *)0x3" identifier = (cast_expression "(byte *)0x3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" if (parenthesized_expression "(pbVar24[0x1ff] == 3)" ( (binary_expression "pbVar24[0x1ff] == 3" (subscript_expression "pbVar24[0x1ff]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }" { (expression_statement "pbVar23 = (byte *)0x8;" (assignment_expression "pbVar23 = (byte *)0x8" identifier = (cast_expression "(byte *)0x8" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar19 == (byte *)0x3) goto LAB_0002c168;" if (parenthesized_expression "(pbVar19 == (byte *)0x3)" ( (binary_expression "pbVar19 == (byte *)0x3" identifier == (cast_expression "(byte *)0x3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c168;" goto statement_identifier ;)) (labeled_statement "LAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);" statement_identifier : (expression_statement "iVar15 = *(int *)(pcVar28 + 0x26f40);" (assignment_expression "iVar15 = *(int *)(pcVar28 + 0x26f40)" identifier = (pointer_expression "*(int *)(pcVar28 + 0x26f40)" * (cast_expression "(int *)(pcVar28 + 0x26f40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x26f40)" ( (binary_expression "pcVar28 + 0x26f40" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" else (compound_statement "{\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" { (expression_statement "param_2 = (byte *)(uint)pbVar24[0x203];" (assignment_expression "param_2 = (byte *)(uint)pbVar24[0x203]" identifier = (cast_expression "(byte *)(uint)pbVar24[0x203]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar24[0x203]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[0x203]" identifier [ number_literal ])))) ;) (expression_statement "pbVar23 = (byte *)(uint)pbVar24[0x200];" (assignment_expression "pbVar23 = (byte *)(uint)pbVar24[0x200]" identifier = (cast_expression "(byte *)(uint)pbVar24[0x200]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)pbVar24[0x200]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar24[0x200]" identifier [ number_literal ])))) ;) (if_statement "if (param_2 != pbVar19) goto LAB_0002c268;" if (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) (goto_statement "goto LAB_0002c268;" goto statement_identifier ;)) (labeled_statement "LAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);" statement_identifier : (expression_statement "iVar15 = *(int *)(pcVar28 + 0x26f40);" (assignment_expression "iVar15 = *(int *)(pcVar28 + 0x26f40)" identifier = (pointer_expression "*(int *)(pcVar28 + 0x26f40)" * (cast_expression "(int *)(pcVar28 + 0x26f40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x26f40)" ( (binary_expression "pcVar28 + 0x26f40" identifier + number_literal) ))))) ;)) (if_statement "if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }" if (parenthesized_expression "(param_2 < &DAT_00000005)" ( (binary_expression "param_2 < &DAT_00000005" identifier < (pointer_expression "&DAT_00000005" & identifier)) )) (compound_statement "{\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }" { (expression_statement "abStack_3d8[0] = (byte)pbVar23;" (assignment_expression "abStack_3d8[0] = (byte)pbVar23" (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]) = (cast_expression "(byte)pbVar23" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;) (expression_statement "abStack_3d8[1] = abStack_3d8[0];" (assignment_expression "abStack_3d8[1] = abStack_3d8[0]" (subscript_expression "abStack_3d8[1]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "abStack_3d8[2] = abStack_3d8[0];" (assignment_expression "abStack_3d8[2] = abStack_3d8[0]" (subscript_expression "abStack_3d8[2]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "abStack_3d8[3] = abStack_3d8[0];" (assignment_expression "abStack_3d8[3] = abStack_3d8[0]" (subscript_expression "abStack_3d8[3]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "FUN_0002aef8(pbVar24,abStack_3d8);" (call_expression "FUN_0002aef8(pbVar24,abStack_3d8)" identifier (argument_list "(pbVar24,abStack_3d8)" ( identifier , identifier ))) ;) (expression_statement "iVar15 = FUN_0002b068(pbVar24,0);" (assignment_expression "iVar15 = FUN_0002b068(pbVar24,0)" identifier = (call_expression "FUN_0002b068(pbVar24,0)" identifier (argument_list "(pbVar24,0)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s2 = pbVar23;" (assignment_expression "unaff_s2 = pbVar23" identifier = identifier) ;) (expression_statement "param_3 = abStack_3d8;" (assignment_expression "param_3 = abStack_3d8" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }" { (if_statement "if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" if (parenthesized_expression "(param_2 == (byte *)0x0)" ( (binary_expression "param_2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }" { (labeled_statement "LAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" statement_identifier : (if_statement "if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" if (parenthesized_expression "((pbVar24[0x1ff] & 2) == 0)" ( (binary_expression "(pbVar24[0x1ff] & 2) == 0" (parenthesized_expression "(pbVar24[0x1ff] & 2)" ( (binary_expression "pbVar24[0x1ff] & 2" (subscript_expression "pbVar24[0x1ff]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }" { (expression_statement "pbVar24[599] = abStack_3d8[0];" (assignment_expression "pbVar24[599] = abStack_3d8[0]" (subscript_expression "pbVar24[599]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x254] = abStack_3d8[0];" (assignment_expression "pbVar24[0x254] = abStack_3d8[0]" (subscript_expression "pbVar24[0x254]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x255] = abStack_3d8[0];" (assignment_expression "pbVar24[0x255] = abStack_3d8[0]" (subscript_expression "pbVar24[0x255]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x256] = abStack_3d8[0];" (assignment_expression "pbVar24[0x256] = abStack_3d8[0]" (subscript_expression "pbVar24[0x256]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[600] = abStack_3d8[1];" (assignment_expression "pbVar24[600] = abStack_3d8[1]" (subscript_expression "pbVar24[600]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[1]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" else (compound_statement "{\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" { (expression_statement "pbVar24[0x254] = abStack_3d8[0];" (assignment_expression "pbVar24[0x254] = abStack_3d8[0]" (subscript_expression "pbVar24[0x254]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x255] = abStack_3d8[1];" (assignment_expression "pbVar24[0x255] = abStack_3d8[1]" (subscript_expression "pbVar24[0x255]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[1]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[0x256] = abStack_3d8[2];" (assignment_expression "pbVar24[0x256] = abStack_3d8[2]" (subscript_expression "pbVar24[0x256]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[2]" identifier [ number_literal ])) ;) (expression_statement "pbVar24[600] = abStack_3d8[3];" (assignment_expression "pbVar24[600] = abStack_3d8[3]" (subscript_expression "pbVar24[600]" identifier [ number_literal ]) = (subscript_expression "abStack_3d8[3]" identifier [ number_literal ])) ;) })))) (expression_statement "pbVar19 = pbVar24 + 0x254;" (assignment_expression "pbVar19 = pbVar24 + 0x254" identifier = (binary_expression "pbVar24 + 0x254" identifier + number_literal)) ;) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b38))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b38)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b38)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b38)" ( (binary_expression "pcStack_3e0 + -0x7b38" identifier + number_literal) ))))) )) (argument_list "(pbVar24,puVar14)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" else (compound_statement "{\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" { (if_statement "if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }" if (parenthesized_expression "(((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23))" ( (binary_expression "((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)" (parenthesized_expression "((byte *)(uint)abStack_3d8[0] != (byte *)0x0)" ( (binary_expression "(byte *)(uint)abStack_3d8[0] != (byte *)0x0" (cast_expression "(byte *)(uint)abStack_3d8[0]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)abStack_3d8[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]))) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)" ( (comma_expression "pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23" (assignment_expression "pbVar13 = abStack_3d8" identifier = identifier) , (binary_expression "(byte *)(uint)abStack_3d8[0] <= pbVar23" (cast_expression "(byte *)(uint)abStack_3d8[0]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)abStack_3d8[0]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "abStack_3d8[0]" identifier [ number_literal ]))) <= identifier)) ))) )) (compound_statement "{\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }" { (expression_statement "param_2 = abStack_3d8 + (int)param_2;" (assignment_expression "param_2 = abStack_3d8 + (int)param_2" identifier = (binary_expression "abStack_3d8 + (int)param_2" identifier + (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));" do (compound_statement "{\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  }" { (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (if_statement "if (param_2 == pbVar13) goto LAB_0002c1f4;" if (parenthesized_expression "(param_2 == pbVar13)" ( (binary_expression "param_2 == pbVar13" identifier == identifier) )) (goto_statement "goto LAB_0002c1f4;" goto statement_identifier ;)) }) while (parenthesized_expression "(((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23))" ( (binary_expression "((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23)" (parenthesized_expression "((byte *)(uint)*pbVar13 != (byte *)0x0)" ( (binary_expression "(byte *)(uint)*pbVar13 != (byte *)0x0" (binary_expression "(byte *)(uint)*pbVar13" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((byte *)(uint)*pbVar13 <= pbVar23)" ( (binary_expression "(byte *)(uint)*pbVar13 <= pbVar23" (binary_expression "(byte *)(uint)*pbVar13" (cast_expression "(byte *)(uint)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uint)" ( identifier ))) * identifier) <= identifier) ))) )) ;) })) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) })) (goto_statement "goto LAB_0002c230;" goto statement_identifier ;) })) }))) (expression_statement "pbStack_3a8 = pbVar19;" (assignment_expression "pbStack_3a8 = pbVar19" identifier = identifier) ;) (expression_statement "(**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);" (call_expression "(**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c)" (parenthesized_expression "(**(code **)(pcVar28 + 0x273c0))" ( (pointer_expression "**(code **)(pcVar28 + 0x273c0)" * (pointer_expression "*(code **)(pcVar28 + 0x273c0)" * (cast_expression "(code **)(pcVar28 + 0x273c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x273c0)" ( (binary_expression "pcVar28 + 0x273c0" identifier + number_literal) ))))) )) (argument_list "(pbVar24,iVar15 + 0x69c)" ( identifier , (binary_expression "iVar15 + 0x69c" identifier + number_literal) ))) ;) (expression_statement "pbVar19 = pbStack_3a8;" (assignment_expression "pbVar19 = pbStack_3a8" identifier = identifier) ;) (expression_statement "FUN_0002b068(pbVar24,pbStack_3a8);" (call_expression "FUN_0002b068(pbVar24,pbStack_3a8)" identifier (argument_list "(pbVar24,pbStack_3a8)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = pbVar23;" (assignment_expression "unaff_s2 = pbVar23" identifier = identifier) ;) }) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" else (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b54)" ( (binary_expression "pcStack_3e0 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" * (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" ( (binary_expression "pcStack_3e0 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c230:\n    pcVar29 = pcStack_3e0;" statement_identifier : (expression_statement "pcVar29 = pcStack_3e0;" (assignment_expression "pcVar29 = pcStack_3e0" identifier = identifier) ;)) (if_statement "if (iStack_3d4 == *piVar22) {\n      return;\n    }" if (parenthesized_expression "(iStack_3d4 == *piVar22)" ( (binary_expression "iStack_3d4 == *piVar22" identifier == (pointer_expression "*piVar22" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3e0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_3e0 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_3e0 + -0x7b6c)" * (cast_expression "(code **)(pcStack_3e0 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_3e0 + -0x7b6c)" ( (binary_expression "pcStack_3e0 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbStack_404 = pbVar24;" (assignment_expression "pbStack_404 = pbVar24" identifier = identifier) ;) })) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" * (cast_expression "(code **)(pcVar29 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7ad4)" ( (binary_expression "pcVar29 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002c348;" (assignment_expression "pcVar30 = FUN_0002c348" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" * (cast_expression "(int *)(pcVar29 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + -0x7fd4)" ( (binary_expression "pcVar29 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2eca8;" (assignment_expression "pcVar29 = pcVar28 + 0x2eca8" identifier = (binary_expression "pcVar28 + 0x2eca8" identifier + number_literal)) ;) (expression_statement "piVar21 = *(int **)(pcVar28 + 0x27174);" (assignment_expression "piVar21 = *(int **)(pcVar28 + 0x27174)" identifier = (pointer_expression "*(int **)(pcVar28 + 0x27174)" * (cast_expression "(int **)(pcVar28 + 0x27174)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x27174)" ( (binary_expression "pcVar28 + 0x27174" identifier + number_literal) ))))) ;) (expression_statement "iStack_40c = *piVar21;" (assignment_expression "iStack_40c = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar23 = pbStack_404;" (assignment_expression "pbVar23 = pbStack_404" identifier = identifier) ;) (expression_statement "pcStack_458 = pcVar29;" (assignment_expression "pcStack_458 = pcVar29" identifier = identifier) ;) (expression_statement "piStack_400 = piVar22;" (assignment_expression "piStack_400 = piVar22" identifier = identifier) ;) (expression_statement "pbStack_3fc = unaff_s2;" (assignment_expression "pbStack_3fc = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_3f8 = puVar14;" (assignment_expression "puStack_3f8 = puVar14" identifier = identifier) ;) (expression_statement "pcStack_3f4 = pcVar30;" (assignment_expression "pcStack_3f4 = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }" if (parenthesized_expression "((*(uint *)(pbVar13 + 0x124) & 1) != 0)" ( (binary_expression "(*(uint *)(pbVar13 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(pbVar13 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar13 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar13 + 0x124)" * (cast_expression "(uint *)(pbVar13 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x124)" ( (binary_expression "pbVar13 + 0x124" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }" { (if_statement "if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" if (parenthesized_expression "((*(uint *)(pbVar13 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar13 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar13 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar13 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar13 + 0x124)" * (cast_expression "(uint *)(pbVar13 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x124)" ( (binary_expression "pbVar13 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }" { (if_statement "if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" if (parenthesized_expression "(pbVar19 == (byte *)0x20)" ( (binary_expression "pbVar19 == (byte *)0x20" identifier == (cast_expression "(byte *)0x20" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }" { (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar15 = FUN_0002b068(pbVar13,0);" (assignment_expression "iVar15 = FUN_0002b068(pbVar13,0)" identifier = (call_expression "FUN_0002b068(pbVar13,0)" identifier (argument_list "(pbVar13,0)" ( identifier , number_literal )))) ;) (expression_statement "puVar14 = auStack_42c;" (assignment_expression "puVar14 = auStack_42c" identifier = identifier) ;) (if_statement "if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }" { (expression_statement "iVar15 = FUN_0002acb0(auStack_42c);" (assignment_expression "iVar15 = FUN_0002acb0(auStack_42c)" identifier = (call_expression "FUN_0002acb0(auStack_42c)" identifier (argument_list "(auStack_42c)" ( identifier )))) ;) (expression_statement "iStack_434 = iVar15;" (assignment_expression "iStack_434 = iVar15" identifier = identifier) ;) (expression_statement "iVar8 = FUN_0002acb0(auStack_428);" (assignment_expression "iVar8 = FUN_0002acb0(auStack_428)" identifier = (call_expression "FUN_0002acb0(auStack_428)" identifier (argument_list "(auStack_428)" ( identifier )))) ;) (expression_statement "iStack_430 = iVar8;" (assignment_expression "iStack_430 = iVar8" identifier = identifier) ;) (expression_statement "iVar9 = FUN_0002acb0(auStack_424);" (assignment_expression "iVar9 = FUN_0002acb0(auStack_424)" identifier = (call_expression "FUN_0002acb0(auStack_424)" identifier (argument_list "(auStack_424)" ( identifier )))) ;) (expression_statement "iStack_44c = iVar9;" (assignment_expression "iStack_44c = iVar9" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0002acb0(auStack_420);" (assignment_expression "iVar4 = FUN_0002acb0(auStack_420)" identifier = (call_expression "FUN_0002acb0(auStack_420)" identifier (argument_list "(auStack_420)" ( identifier )))) ;) (expression_statement "iStack_448 = iVar4;" (assignment_expression "iStack_448 = iVar4" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0002acb0(auStack_41c);" (assignment_expression "iVar5 = FUN_0002acb0(auStack_41c)" identifier = (call_expression "FUN_0002acb0(auStack_41c)" identifier (argument_list "(auStack_41c)" ( identifier )))) ;) (expression_statement "iStack_444 = iVar5;" (assignment_expression "iStack_444 = iVar5" identifier = identifier) ;) (expression_statement "iVar6 = FUN_0002acb0(auStack_418);" (assignment_expression "iVar6 = FUN_0002acb0(auStack_418)" identifier = (call_expression "FUN_0002acb0(auStack_418)" identifier (argument_list "(auStack_418)" ( identifier )))) ;) (expression_statement "iStack_440 = iVar6;" (assignment_expression "iStack_440 = iVar6" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0002acb0(auStack_414);" (assignment_expression "iVar7 = FUN_0002acb0(auStack_414)" identifier = (call_expression "FUN_0002acb0(auStack_414)" identifier (argument_list "(auStack_414)" ( identifier )))) ;) (expression_statement "iStack_43c = iVar7;" (assignment_expression "iStack_43c = iVar7" identifier = identifier) ;) (expression_statement "iStack_438 = FUN_0002acb0(auStack_410);" (assignment_expression "iStack_438 = FUN_0002acb0(auStack_410)" identifier = (call_expression "FUN_0002acb0(auStack_410)" identifier (argument_list "(auStack_410)" ( identifier )))) ;) (if_statement "if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" if (parenthesized_expression "(iVar15 == -1)" ( (binary_expression "iVar15 == -1" identifier == number_literal) )) (compound_statement "{\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }" { (expression_statement "iVar15 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar15 = *(int *)(pcStack_458 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) ))))) ;) }) (else_clause "else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" else (compound_statement "{\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" { (expression_statement "iVar15 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar15 = *(int *)(pcStack_458 + -0x7fd4)" identifier = (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) ))))) ;) (if_statement "if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" if (parenthesized_expression "(((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1))))" ( (binary_expression "((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))" (parenthesized_expression "((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1))))" ( (binary_expression "(((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))" (parenthesized_expression "(((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1))" ( (binary_expression "((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)" (parenthesized_expression "((iVar8 != -1) && (iVar9 != -1))" ( (binary_expression "(iVar8 != -1) && (iVar9 != -1)" (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) && (parenthesized_expression "(iVar9 != -1)" ( (binary_expression "iVar9 != -1" identifier != number_literal) ))) )) && (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) ))) )) && (parenthesized_expression "((iVar5 != -1 && (iVar6 != -1)))" ( (parenthesized_expression "(iVar5 != -1 && (iVar6 != -1))" ( (binary_expression "iVar5 != -1 && (iVar6 != -1)" (binary_expression "iVar5 != -1" identifier != number_literal) && (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) ))) )) ))) )) && (parenthesized_expression "((iVar7 != -1 && (iStack_438 != -1)))" ( (parenthesized_expression "(iVar7 != -1 && (iStack_438 != -1))" ( (binary_expression "iVar7 != -1 && (iStack_438 != -1)" (binary_expression "iVar7 != -1" identifier != number_literal) && (parenthesized_expression "(iStack_438 != -1)" ( (binary_expression "iStack_438 != -1" identifier != number_literal) ))) )) ))) )) (compound_statement "{\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" { (expression_statement "uVar1 = *(ushort *)(pbVar13 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(pbVar13 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" * (cast_expression "(ushort *)(pbVar13 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x3e2)" ( (binary_expression "pbVar13 + 0x3e2" identifier + number_literal) ))))) ;) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" identifier = identifier) ;) (if_statement "if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" if (parenthesized_expression "(-1 < (short)uVar1)" ( (binary_expression "-1 < (short)uVar1" number_literal < (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) (compound_statement "{\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" { (if_statement "if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" if (parenthesized_expression "((uVar1 & 0x10) == 0)" ( (binary_expression "(uVar1 & 0x10) == 0" (parenthesized_expression "(uVar1 & 0x10)" ( (binary_expression "uVar1 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }" { (expression_statement "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;" (assignment_expression "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10" (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" * (cast_expression "(ushort *)(pbVar13 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x3e2)" ( (binary_expression "pbVar13 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x10" identifier | number_literal)) ;) (expression_statement "pbVar19 = (byte *)&iStack_44c;" (assignment_expression "pbVar19 = (byte *)&iStack_44c" identifier = (cast_expression "(byte *)&iStack_44c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iStack_44c" & identifier))) ;) (expression_statement "FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);" (call_expression "FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1)" identifier (argument_list "(pbVar13,pbVar13 + 0x398,pbVar19,1)" ( identifier , (binary_expression "pbVar13 + 0x398" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00015834(pbVar13,pbVar16);" (call_expression "FUN_00015834(pbVar13,pbVar16)" identifier (argument_list "(pbVar13,pbVar16)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" else (compound_statement "{\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" { (expression_statement "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" * (cast_expression "(ushort *)(pbVar13 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0x3e2)" ( (binary_expression "pbVar13 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(pbVar13,pbVar16);" (call_expression "FUN_00015834(pbVar13,pbVar16)" identifier (argument_list "(pbVar13,pbVar16)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) })) (goto_statement "goto LAB_0002c3d4;" goto statement_identifier ;) })) }))) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,iVar15 + 0x70c)" ( identifier , (binary_expression "iVar15 + 0x70c" identifier + number_literal) ))) ;) })) }) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" else (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" * (cast_expression "(code **)(pcStack_458 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b54)" ( (binary_expression "pcStack_458 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" * (cast_expression "(int *)(pcStack_458 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_458 + -0x7fd4)" ( (binary_expression "pcStack_458 + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c3d4:\n    pcVar29 = pcStack_458;" statement_identifier : (expression_statement "pcVar29 = pcStack_458;" (assignment_expression "pcVar29 = pcStack_458" identifier = identifier) ;)) (if_statement "if (iStack_40c == *piVar21) {\n      return;\n    }" if (parenthesized_expression "(iStack_40c == *piVar21)" ( (binary_expression "iStack_40c == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcStack_458 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_458 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b6c))" ( (pointer_expression "**(code **)(pcStack_458 + -0x7b6c)" * (pointer_expression "*(code **)(pcStack_458 + -0x7b6c)" * (cast_expression "(code **)(pcStack_458 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_458 + -0x7b6c)" ( (binary_expression "pcStack_458 + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar23 = pbVar13;" (assignment_expression "pbVar23 = pbVar13" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar16;" (assignment_expression "unaff_s2 = pbVar16" identifier = identifier) ;) })) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" * (cast_expression "(code **)(pcVar29 + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7ad4)" ( (binary_expression "pcVar29 + -0x7ad4" identifier + number_literal) ))))) ;) (expression_statement "pcVar30 = FUN_0002c5dc;" (assignment_expression "pcVar30 = FUN_0002c5dc" identifier = identifier) ;) (expression_statement "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" ( (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" * (cast_expression "(int *)(pcVar29 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + -0x7fd4)" ( (binary_expression "pcVar29 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar29 = pcVar28 + 0x2ea14;" (assignment_expression "pcVar29 = pcVar28 + 0x2ea14" identifier = (binary_expression "pcVar28 + 0x2ea14" identifier + number_literal)) ;) (expression_statement "pbVar13 = *(byte **)(pcVar28 + 0x26ee0);" (assignment_expression "pbVar13 = *(byte **)(pcVar28 + 0x26ee0)" identifier = (pointer_expression "*(byte **)(pcVar28 + 0x26ee0)" * (cast_expression "(byte **)(pcVar28 + 0x26ee0)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x26ee0)" ( (binary_expression "pcVar28 + 0x26ee0" identifier + number_literal) ))))) ;) (expression_statement "iStack_47c = *(int *)pbVar13;" (assignment_expression "iStack_47c = *(int *)pbVar13" identifier = (pointer_expression "*(int *)pbVar13" * (cast_expression "(int *)pbVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcStack_488 = pcVar29;" (assignment_expression "pcStack_488 = pcVar29" identifier = identifier) ;) (expression_statement "pbStack_478 = pbVar23;" (assignment_expression "pbStack_478 = pbVar23" identifier = identifier) ;) (expression_statement "piStack_474 = piVar21;" (assignment_expression "piStack_474 = piVar21" identifier = identifier) ;) (expression_statement "pbStack_470 = unaff_s2;" (assignment_expression "pbStack_470 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_46c = pcVar30;" (assignment_expression "pcStack_46c = pcVar30" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 1) == 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 1) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }" { (expression_statement "pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" identifier = (cast_expression "(byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" ( (binary_expression "*(int *)(pcVar28 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(pcVar28 + 0x26a40)" * (cast_expression "(int *)(pcVar28 + 0x26a40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar28 + 0x26a40)" ( (binary_expression "pcVar28 + 0x26a40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar28 + 0x26f40))();" (call_expression "(**(code **)(pcVar28 + 0x26f40))()" (parenthesized_expression "(**(code **)(pcVar28 + 0x26f40))" ( (pointer_expression "**(code **)(pcVar28 + 0x26f40)" * (pointer_expression "*(code **)(pcVar28 + 0x26f40)" * (cast_expression "(code **)(pcVar28 + 0x26f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar28 + 0x26f40)" ( (binary_expression "pcVar28 + 0x26f40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) }) (else_clause "else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" else (compound_statement "{\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" { (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" if (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar24 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar24 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar24 + 0x124)" * (cast_expression "(uint *)(pbVar24 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x124)" ( (binary_expression "pbVar24 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }" { (if_statement "if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" if (parenthesized_expression "(pbVar19 == (byte *)0x1)" ( (binary_expression "pbVar19 == (byte *)0x1" identifier == (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }" { (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)0x0;" (assignment_expression "pbVar17 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar15 = FUN_0002b068();" (assignment_expression "iVar15 = FUN_0002b068()" identifier = (call_expression "FUN_0002b068()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" { (expression_statement "uVar1 = *(ushort *)(pbVar24 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(pbVar24 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(pbVar24 + 0x3e2)" * (cast_expression "(ushort *)(pbVar24 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x3e2)" ( (binary_expression "pbVar24 + 0x3e2" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" if (parenthesized_expression "(-1 < (short)uVar1)" ( (binary_expression "-1 < (short)uVar1" number_literal < (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) )) (compound_statement "{\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" { (if_statement "if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" if (parenthesized_expression "((uVar1 & 4) == 0)" ( (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" ( (binary_expression "uVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }" { (expression_statement "pbVar19 = (byte *)(uint)bStack_47d;" (assignment_expression "pbVar19 = (byte *)(uint)bStack_47d" identifier = (cast_expression "(byte *)(uint)bStack_47d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bStack_47d" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "FUN_00018198(pbVar24,pbVar24 + 0x398);" (call_expression "FUN_00018198(pbVar24,pbVar24 + 0x398)" identifier (argument_list "(pbVar24,pbVar24 + 0x398)" ( identifier , (binary_expression "pbVar24 + 0x398" identifier + number_literal) ))) ;) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "pbVar17 = pbVar16;" (assignment_expression "pbVar17 = pbVar16" identifier = identifier) ;) (expression_statement "FUN_00015834();" (call_expression "FUN_00015834()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" else (compound_statement "{\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" { (expression_statement "*(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(pbVar24 + 0x3e2)" * (cast_expression "(ushort *)(pbVar24 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar24 + 0x3e2)" ( (binary_expression "pbVar24 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(pbVar24,pbVar16);" (call_expression "FUN_00015834(pbVar24,pbVar16)" identifier (argument_list "(pbVar24,pbVar16)" ( identifier , identifier ))) ;) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" identifier = identifier) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) })) }) (else_clause "else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" else (compound_statement "{\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" else (compound_statement "{\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" identifier = (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" ( (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" * (cast_expression "(int *)(pcStack_488 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_488 + -0x7fd4)" ( (binary_expression "pcStack_488 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" ( (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" * (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" * (cast_expression "(code **)(pcStack_488 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_488 + -0x7b54)" ( (binary_expression "pcStack_488 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" identifier = identifier) ;) (expression_statement "unaff_s2 = pbVar16;" (assignment_expression "unaff_s2 = pbVar16" identifier = identifier) ;) (expression_statement "pcVar29 = pcStack_488;" (assignment_expression "pcVar29 = pcStack_488" identifier = identifier) ;) (if_statement "if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }" if (parenthesized_expression "(iStack_47c == *(int *)pbVar13)" ( (binary_expression "iStack_47c == *(int *)pbVar13" identifier == (pointer_expression "*(int *)pbVar13" * (cast_expression "(int *)pbVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar29 = *(code **)(pcVar29 + -0x7b6c);" (assignment_expression "pcVar29 = *(code **)(pcVar29 + -0x7b6c)" identifier = (pointer_expression "*(code **)(pcVar29 + -0x7b6c)" * (cast_expression "(code **)(pcVar29 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + -0x7b6c)" ( (binary_expression "pcVar29 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "pcVar28 = FUN_0002c770;" (assignment_expression "pcVar28 = FUN_0002c770" identifier = identifier) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = *(int **)(pcVar29 + 0x26d4c);" (assignment_expression "piVar21 = *(int **)(pcVar29 + 0x26d4c)" identifier = (pointer_expression "*(int **)(pcVar29 + 0x26d4c)" * (cast_expression "(int **)(pcVar29 + 0x26d4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d4c)" ( (binary_expression "pcVar29 + 0x26d4c" identifier + number_literal) ))))) ;) (expression_statement "pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);" (assignment_expression "pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1)" identifier = (cast_expression "(byte *)(*(uint *)(pbVar11 + 0x124) & 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pbVar11 + 0x124) & 1)" ( (binary_expression "*(uint *)(pbVar11 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar11 + 0x124)" * (cast_expression "(uint *)(pbVar11 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x124)" ( (binary_expression "pbVar11 + 0x124" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "iStack_4c4 = *piVar21;" (assignment_expression "iStack_4c4 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "pbVar24 = unaff_s2;" (assignment_expression "pbVar24 = unaff_s2" identifier = identifier) ;) (expression_statement "pbStack_4c0 = pbVar23;" (assignment_expression "pbStack_4c0 = pbVar23" identifier = identifier) ;) (expression_statement "pbStack_4bc = pbVar13;" (assignment_expression "pbStack_4bc = pbVar13" identifier = identifier) ;) (expression_statement "pbStack_4b8 = unaff_s2;" (assignment_expression "pbStack_4b8 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_4b4 = puVar14;" (assignment_expression "puStack_4b4 = puVar14" identifier = identifier) ;) (expression_statement "pbStack_4b0 = param_2;" (assignment_expression "pbStack_4b0 = param_2" identifier = identifier) ;) (expression_statement "pbStack_4ac = param_3;" (assignment_expression "pbStack_4ac = param_3" identifier = identifier) ;) (expression_statement "pbStack_4a8 = unaff_s6;" (assignment_expression "pbStack_4a8 = unaff_s6" identifier = identifier) ;) (expression_statement "pbStack_4a4 = unaff_s7;" (assignment_expression "pbStack_4a4 = unaff_s7" identifier = identifier) ;) (expression_statement "pbStack_4a0 = unaff_s8;" (assignment_expression "pbStack_4a0 = unaff_s8" identifier = identifier) ;) (expression_statement "pcStack_49c = pcVar28;" (assignment_expression "pcStack_49c = pcVar28" identifier = identifier) ;) (expression_statement "apbStack_490[0] = pbVar19;" (assignment_expression "apbStack_490[0] = pbVar19" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;" if (parenthesized_expression "(pbVar16 == (byte *)0x0)" ( (binary_expression "pbVar16 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd34;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" if (parenthesized_expression "((*(uint *)(pbVar11 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(pbVar11 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar11 + 0x124) & 6)" ( (binary_expression "*(uint *)(pbVar11 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar11 + 0x124)" * (cast_expression "(uint *)(pbVar11 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x124)" ( (binary_expression "pbVar11 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }" { (if_statement "if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" if (parenthesized_expression "((byte *)0xd < pbVar19)" ( (binary_expression "(byte *)0xd < pbVar19" (cast_expression "(byte *)0xd" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" { (if_statement "if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" if (parenthesized_expression "((short)*(ushort *)(pbVar11 + 0x3e2) < 0)" ( (binary_expression "(short)*(ushort *)(pbVar11 + 0x3e2) < 0" (cast_expression "(short)*(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) ))))) < number_literal) )) (compound_statement "{\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (if_statement "if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }" if (parenthesized_expression "((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0)" ( (binary_expression "(*(ushort *)(pbVar11 + 0x3e2) & 4) != 0" (parenthesized_expression "(*(ushort *)(pbVar11 + 0x3e2) & 4)" ( (binary_expression "*(ushort *)(pbVar11 + 0x3e2) & 4" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }" { (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x71c)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x71c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);" statement_identifier : (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" identifier (argument_list "(pbVar11,apbStack_490[0])" ( identifier , (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002c934;" goto statement_identifier ;) })) (expression_statement "pbVar13 = (byte *)0x51;" (assignment_expression "pbVar13 = (byte *)0x51" identifier = (cast_expression "(byte *)0x51" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }" if (parenthesized_expression "(pbVar19 < (byte *)0x51)" ( (binary_expression "pbVar19 < (byte *)0x51" identifier < (cast_expression "(byte *)0x51" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pbVar13 = pbVar19;\n      }" { (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" identifier = identifier) ;) })) (expression_statement "pbVar24 = abStack_99c;" (assignment_expression "pbVar24 = abStack_99c" identifier = identifier) ;) (expression_statement "pbVar19 = pbVar13;" (assignment_expression "pbVar19 = pbVar13" identifier = identifier) ;) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;" (assignment_expression "apbStack_490[0] = apbStack_490[0] + -(int)pbVar13" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) = (binary_expression "apbStack_490[0] + -(int)pbVar13" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) + (unary_expression "-(int)pbVar13" - (cast_expression "(int)pbVar13" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" if (parenthesized_expression "((byte *)0xa < apbStack_490[0])" ( (binary_expression "(byte *)0xa < apbStack_490[0]" (cast_expression "(byte *)0xa" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) )) (compound_statement "{\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" { (expression_statement "pbVar23 = abStack_99c;" (assignment_expression "pbVar23 = abStack_99c" identifier = identifier) ;) (if_statement "if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" if (parenthesized_expression "(abStack_99c[0] == 0)" ( (binary_expression "abStack_99c[0] == 0" (subscript_expression "abStack_99c[0]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }" { (labeled_statement "LAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);" statement_identifier : (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x748)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x748" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;)) }) (else_clause "else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" else (compound_statement "{\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" { (do_statement "do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);" do (compound_statement "{\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          }" { (expression_statement "pbVar26 = pbVar16;" (assignment_expression "pbVar26 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" identifier = (binary_expression "pbVar23 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s6 = pbVar26 + 1;" (assignment_expression "unaff_s6 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar26;" (assignment_expression "pbVar16 = pbVar26" identifier = identifier) ;) (if_statement "if (*pbVar23 == 0) goto LAB_0002c86c;" if (parenthesized_expression "(*pbVar23 == 0)" ( (binary_expression "*pbVar23 == 0" (pointer_expression "*pbVar23" * identifier) == number_literal) )) (goto_statement "goto LAB_0002c86c;" goto statement_identifier ;)) (expression_statement "pbVar16 = pbVar26 + 1;" (assignment_expression "pbVar16 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (pbVar16 == (byte *)0x50) goto LAB_0002c974;" if (parenthesized_expression "(pbVar16 == (byte *)0x50)" ( (binary_expression "pbVar16 == (byte *)0x50" identifier == (cast_expression "(byte *)0x50" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c974;" goto statement_identifier ;)) }) while (parenthesized_expression "(pbVar13 != pbVar16)" ( (binary_expression "pbVar13 != pbVar16" identifier != identifier) )) ;) (expression_statement "unaff_s6 = pbVar26 + 2;" (assignment_expression "unaff_s6 = pbVar26 + 2" identifier = (binary_expression "pbVar26 + 2" identifier + number_literal)) ;) (labeled_statement "LAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" statement_identifier : (if_statement "if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" if (parenthesized_expression "((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0))" ( (binary_expression "(unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)" (parenthesized_expression "(unaff_s6 < pbVar13)" ( (binary_expression "unaff_s6 < pbVar13" identifier < identifier) )) && (parenthesized_expression "(abStack_99c[(int)unaff_s6] == 0)" ( (binary_expression "abStack_99c[(int)unaff_s6] == 0" (subscript_expression "abStack_99c[(int)unaff_s6]" identifier [ (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier) ]) == number_literal) ))) )) (compound_statement "{\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" { (expression_statement "iVar15 = FUN_0002a9cc(pbVar11,0x69434350);" (assignment_expression "iVar15 = FUN_0002a9cc(pbVar11,0x69434350)" identifier = (call_expression "FUN_0002a9cc(pbVar11,0x69434350)" identifier (argument_list "(pbVar11,0x69434350)" ( identifier , number_literal )))) ;) (if_statement "if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }" { (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" identifier = (pointer_expression "*(byte **)(pbVar11 + 0x14c)" * (cast_expression "(byte **)(pbVar11 + 0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) ))))) ;) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" identifier = (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);" (call_expression "(**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26c24))" ( (pointer_expression "**(code **)(pcVar29 + 0x26c24)" * (pointer_expression "*(code **)(pcVar29 + 0x26c24)" * (cast_expression "(code **)(pcVar29 + 0x26c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26c24)" ( (binary_expression "pcVar29 + 0x26c24" identifier + number_literal) ))))) )) (argument_list "(&bStack_948,0,0x84)" ( (pointer_expression "&bStack_948" & identifier) , number_literal , number_literal ))) ;) (expression_statement "pbVar19 = pbVar16 + 2;" (assignment_expression "pbVar19 = pbVar16 + 2" identifier = (binary_expression "pbVar16 + 2" identifier + number_literal)) ;) (expression_statement "pbVar16 = pbVar13 + (-2 - (int)pbVar16);" (assignment_expression "pbVar16 = pbVar13 + (-2 - (int)pbVar16)" identifier = (binary_expression "pbVar13 + (-2 - (int)pbVar16)" identifier + (parenthesized_expression "(-2 - (int)pbVar16)" ( (binary_expression "-2 - (int)pbVar16" number_literal - (cast_expression "(int)pbVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbStack_9a0 = (byte *)0x84;" (assignment_expression "pbStack_9a0 = (byte *)0x84" identifier = (cast_expression "(byte *)0x84" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;" (assignment_expression "*(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19" (pointer_expression "*(byte **)(pbVar11 + 0x134)" * (cast_expression "(byte **)(pbVar11 + 0x134)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x134)" ( (binary_expression "pbVar11 + 0x134" identifier + number_literal) )))) = (binary_expression "pbVar24 + (int)pbVar19" identifier + (cast_expression "(int)pbVar19" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "*(byte **)(pbVar11 + 0x138) = pbVar16;" (assignment_expression "*(byte **)(pbVar11 + 0x138) = pbVar16" (pointer_expression "*(byte **)(pbVar11 + 0x138)" * (cast_expression "(byte **)(pbVar11 + 0x138)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x138)" ( (binary_expression "pbVar11 + 0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" if (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" ( (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" * (cast_expression "(int *)(pbVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x130)" ( (binary_expression "pbVar11 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(pbVar11 + 0x1cc)" * (cast_expression "(int *)(pbVar11 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x1cc)" ( (binary_expression "pbVar11 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }" { (expression_statement "iVar15 = *(int *)(pcVar29 + 0x26a74);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x26a74)" identifier = (pointer_expression "*(int *)(pcVar29 + 0x26a74)" * (cast_expression "(int *)(pcVar29 + 0x26a74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x26a74)" ( (binary_expression "pcVar29 + 0x26a74" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar11 + 0x140) = &bStack_948;" (assignment_expression "*(byte **)(pbVar11 + 0x140) = &bStack_948" (pointer_expression "*(byte **)(pbVar11 + 0x140)" * (cast_expression "(byte **)(pbVar11 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x140)" ( (binary_expression "pbVar11 + 0x140" identifier + number_literal) )))) = (pointer_expression "&bStack_948" & identifier)) ;) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);" (call_expression "FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" identifier (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" ( identifier , identifier , identifier , (pointer_expression "&pbStack_9a0" & identifier) , number_literal ))) ;) (if_statement "if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }" if (parenthesized_expression "(pbStack_9a0 == (byte *)0x0)" ( (binary_expression "pbStack_9a0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }" { (expression_statement "pbStack_9b4 = pbVar11 + 0x398;" (assignment_expression "pbStack_9b4 = pbVar11 + 0x398" identifier = (binary_expression "pbVar11 + 0x398" identifier + number_literal)) ;) (expression_statement "pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);" (assignment_expression "pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" identifier = (cast_expression "(byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" ( (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100" (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945" (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000" (binary_expression "(uint)bStack_948 * 0x1000000" (cast_expression "(uint)bStack_948" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_947 * 0x10000" (cast_expression "(uint)bStack_947" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_945" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_946 * 0x100" (cast_expression "(uint)bStack_946" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "pbVar19 = pbVar24;" (assignment_expression "pbVar19 = pbVar24" identifier = identifier) ;) (expression_statement "iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);" (assignment_expression "iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" identifier = (call_expression "FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" if (parenthesized_expression "((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0))" ( (binary_expression "(iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)" ( (comma_expression "pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0" (assignment_expression "pbVar19 = pbVar24" identifier = identifier) , (comma_expression "iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0" (assignment_expression "iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" identifier = (call_expression "FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" ( identifier , identifier , identifier , identifier , (pointer_expression "&bStack_948" & identifier) , (subscript_expression "pbVar11[0x1ff]" identifier [ number_literal ]) )))) , (binary_expression "iVar8 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" { (expression_statement "pbVar19 = (byte *)0x2;" (assignment_expression "pbVar19 = (byte *)0x2" identifier = (cast_expression "(byte *)0x2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);" (assignment_expression "pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2)" identifier = (cast_expression "(byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002ab84(pbVar11,pbStack_9c0,2)" identifier (argument_list "(pbVar11,pbStack_9c0,2)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(pbVar16 == (byte *)0x0)" ( (binary_expression "pbVar16 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "iVar15 = *(int *)(pcVar29 + 0x268ac);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar24 = (byte *)(iVar15 + -0x184);" (assignment_expression "pbVar24 = (byte *)(iVar15 + -0x184)" identifier = (cast_expression "(byte *)(iVar15 + -0x184)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x184)" ( (binary_expression "iVar15 + -0x184" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) (expression_statement "pbVar19 = pbVar16;" (assignment_expression "pbVar19 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar13 = &bStack_948;" (assignment_expression "pbVar13 = &bStack_948" identifier = (pointer_expression "&bStack_948" & identifier)) ;) (do_statement "do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);" do (compound_statement "{\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  }" { (expression_statement "pbVar23 = pbVar13 + 0x10;" (assignment_expression "pbVar23 = pbVar13 + 0x10" identifier = (binary_expression "pbVar13 + 0x10" identifier + number_literal)) ;) (expression_statement "uVar20 = *(undefined4 *)(pbVar13 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(pbVar13 + 4)" identifier = (pointer_expression "*(undefined4 *)(pbVar13 + 4)" * (cast_expression "(undefined4 *)(pbVar13 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 4)" ( (binary_expression "pbVar13 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar18 = *(undefined4 *)(pbVar13 + 8);" (assignment_expression "uVar18 = *(undefined4 *)(pbVar13 + 8)" identifier = (pointer_expression "*(undefined4 *)(pbVar13 + 8)" * (cast_expression "(undefined4 *)(pbVar13 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 8)" ( (binary_expression "pbVar13 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar12 = *(undefined4 *)(pbVar13 + 0xc);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar13 + 0xc)" identifier = (pointer_expression "*(undefined4 *)(pbVar13 + 0xc)" * (cast_expression "(undefined4 *)(pbVar13 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 0xc)" ( (binary_expression "pbVar13 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;" (assignment_expression "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar13" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pbVar13" * (cast_expression "(undefined4 *)pbVar13" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(pbVar19 + 4) = uVar20;" (assignment_expression "*(undefined4 *)(pbVar19 + 4) = uVar20" (pointer_expression "*(undefined4 *)(pbVar19 + 4)" * (cast_expression "(undefined4 *)(pbVar19 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar19 + 4)" ( (binary_expression "pbVar19 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar19 + 8) = uVar18;" (assignment_expression "*(undefined4 *)(pbVar19 + 8) = uVar18" (pointer_expression "*(undefined4 *)(pbVar19 + 8)" * (cast_expression "(undefined4 *)(pbVar19 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar19 + 8)" ( (binary_expression "pbVar19 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(pbVar19 + 0xc) = uVar12;" (assignment_expression "*(undefined4 *)(pbVar19 + 0xc) = uVar12" (pointer_expression "*(undefined4 *)(pbVar19 + 0xc)" * (cast_expression "(undefined4 *)(pbVar19 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar19 + 0xc)" ( (binary_expression "pbVar19 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar19 = pbVar19 + 0x10;" (assignment_expression "pbVar19 = pbVar19 + 0x10" identifier = (binary_expression "pbVar19 + 0x10" identifier + number_literal)) ;) (expression_statement "pbVar13 = pbVar23;" (assignment_expression "pbVar13 = pbVar23" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar23 != &bStack_8c8)" ( (binary_expression "pbVar23 != &bStack_8c8" identifier != (pointer_expression "&bStack_8c8" & identifier)) )) ;) (expression_statement "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;" (assignment_expression "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar23" (pointer_expression "*(undefined4 *)pbVar19" * (cast_expression "(undefined4 *)pbVar19" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)pbVar23" * (cast_expression "(undefined4 *)pbVar23" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;" (assignment_expression "iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100" identifier = (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100" (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5" (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000" (binary_expression "(uint)bStack_8c8 * 0x1000000" (cast_expression "(uint)bStack_8c8" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_8c7 * 0x10000" (cast_expression "(uint)bStack_8c7" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_8c5" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_8c6 * 0x100" (cast_expression "(uint)bStack_8c6" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "pbVar13 = (byte *)(iVar8 * 0xc);" (assignment_expression "pbVar13 = (byte *)(iVar8 * 0xc)" identifier = (cast_expression "(byte *)(iVar8 * 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 * 0xc)" ( (binary_expression "iVar8 * 0xc" identifier * number_literal) )))) ;) (expression_statement "pbStack_9a0 = pbVar13;" (assignment_expression "pbStack_9a0 = pbVar13" identifier = identifier) ;) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" if (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" ( (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" * (cast_expression "(int *)(pbVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x130)" ( (binary_expression "pbVar11 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(pbVar11 + 0x1cc)" * (cast_expression "(int *)(pbVar11 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x1cc)" ( (binary_expression "pbVar11 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }" { (expression_statement "*(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;" (assignment_expression "*(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84" (pointer_expression "*(byte **)(pbVar11 + 0x140)" * (cast_expression "(byte **)(pbVar11 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x140)" ( (binary_expression "pbVar11 + 0x140" identifier + number_literal) )))) = (binary_expression "pbVar16 + 0x84" identifier + number_literal)) ;) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);" (call_expression "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" (parenthesized_expression "(*(code *)(iVar15 + -0x47c4))" ( (pointer_expression "*(code *)(iVar15 + -0x47c4)" * (cast_expression "(code *)(iVar15 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x47c4)" ( (binary_expression "iVar15 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" ( identifier , identifier , identifier , (pointer_expression "&pbStack_9a0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" else (compound_statement "{\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" { (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" * (cast_expression "(int *)(pbVar11 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(pbStack_9a0 != (byte *)0x0)" ( (binary_expression "pbStack_9a0 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "pbVar19 = pbVar24;" (assignment_expression "pbVar19 = pbVar24" identifier = identifier) ;) (expression_statement "iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);" (assignment_expression "iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" identifier = (call_expression "FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;" (assignment_expression "pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84" identifier = (binary_expression "pbStack_9c0 + iVar8 * -0xc + -0x84" (binary_expression "pbStack_9c0 + iVar8 * -0xc" identifier + (binary_expression "iVar8 * -0xc" identifier * number_literal)) + number_literal)) ;) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" if (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" ( (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" * (cast_expression "(int *)(pbVar11 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x130)" ( (binary_expression "pbVar11 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(pbVar11 + 0x1cc)" * (cast_expression "(int *)(pbVar11 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x1cc)" ( (binary_expression "pbVar11 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }" { (expression_statement "*(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);" (assignment_expression "*(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84)" (pointer_expression "*(byte **)(pbVar11 + 0x140)" * (cast_expression "(byte **)(pbVar11 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x140)" ( (binary_expression "pbVar11 + 0x140" identifier + number_literal) )))) = (binary_expression "pbVar16 + (int)(pbVar13 + 0x84)" identifier + (cast_expression "(int)(pbVar13 + 0x84)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pbVar13 + 0x84)" ( (binary_expression "pbVar13 + 0x84" identifier + number_literal) ))))) ;) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;" (call_expression "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)" (parenthesized_expression "(*(code *)(iVar15 + -0x47c4))" ( (pointer_expression "*(code *)(iVar15 + -0x47c4)" * (cast_expression "(code *)(iVar15 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + -0x47c4)" ( (binary_expression "iVar15 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)" ( identifier , identifier , identifier , (pointer_expression "&pbStack_9a0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" else (compound_statement "{\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" { (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" * (cast_expression "(int *)(pbVar11 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" identifier = (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) ;) (if_statement "if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" if (parenthesized_expression "(apbStack_490[0] == (byte *)0x0)" ( (binary_expression "apbStack_490[0] == (byte *)0x0" (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" { (if_statement "if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;" if (parenthesized_expression "(pbStack_9a0 == (byte *)0x0)" ( (binary_expression "pbStack_9a0 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd68;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;) })) (expression_statement "pbVar13 = pbStack_9a0;" (assignment_expression "pbVar13 = pbStack_9a0" identifier = identifier) ;) (if_statement "if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;" if (parenthesized_expression "(*(int *)(pbVar11 + 0x128) << 0xb < 0)" ( (binary_expression "*(int *)(pbVar11 + 0x128) << 0xb < 0" (binary_expression "*(int *)(pbVar11 + 0x128) << 0xb" (pointer_expression "*(int *)(pbVar11 + 0x128)" * (cast_expression "(int *)(pbVar11 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x128)" ( (binary_expression "pbVar11 + 0x128" identifier + number_literal) )))) << number_literal) < number_literal) )) (goto_statement "goto LAB_0002cd44;" goto statement_identifier ;)) (expression_statement "iVar15 = *(int *)(pcVar29 + 0x268ac);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar24 = (byte *)(iVar15 + 0x674);" (assignment_expression "pbVar24 = (byte *)(iVar15 + 0x674)" identifier = (cast_expression "(byte *)(iVar15 + 0x674)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0x674)" ( (binary_expression "iVar15 + 0x674" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) })) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" identifier (argument_list "(pbVar11,apbStack_490[0])" ( identifier , (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) ))) ;) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) }) (else_clause "else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" else (compound_statement "{\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" { (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" * (cast_expression "(int *)(pbVar11 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (labeled_statement "LAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);" statement_identifier : (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" identifier = (pointer_expression "*(byte **)(pbVar11 + 0x14c)" * (cast_expression "(byte **)(pbVar11 + 0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" identifier = (subscript_expression "apbStack_490[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) }))) (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x730)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x730" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) }))) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) })) (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);" (call_expression "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x237c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) }) (else_clause "else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" else (compound_statement "{\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);" (call_expression "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x68c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" statement_identifier : (while_statement "while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" { (if_statement "if (iStack_4c4 == *piVar21) {\n      return;\n    }" if (parenthesized_expression "(iStack_4c4 == *piVar21)" ( (binary_expression "iStack_4c4 == *piVar21" identifier == (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar29 + 0x26d14))();" (call_expression "(**(code **)(pcVar29 + 0x26d14))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d14))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d14)" * (pointer_expression "*(code **)(pcVar29 + 0x26d14)" * (cast_expression "(code **)(pcVar29 + 0x26d14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d14)" ( (binary_expression "pcVar29 + 0x26d14" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" identifier = identifier) ;) (expression_statement "pbVar24 = unaff_s2;" (assignment_expression "pbVar24 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s8 = pbVar11;" (assignment_expression "unaff_s8 = pbVar11" identifier = identifier) ;) (labeled_statement "LAB_0002cd34:\n    pbVar11 = unaff_s8;" statement_identifier : (expression_statement "pbVar11 = unaff_s8;" (assignment_expression "pbVar11 = unaff_s8" identifier = identifier) ;)) (expression_statement "pbVar17 = pbVar13;" (assignment_expression "pbVar17 = pbVar13" identifier = identifier) ;) (expression_statement "pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();" (assignment_expression "pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))()" identifier = (cast_expression "(byte *)(**(code **)(pcVar29 + 0x26dac))()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar29 + 0x26dac))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x26dac))" ( (pointer_expression "**(code **)(pcVar29 + 0x26dac)" * (pointer_expression "*(code **)(pcVar29 + 0x26dac)" * (cast_expression "(code **)(pcVar29 + 0x26dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26dac)" ( (binary_expression "pcVar29 + 0x26dac" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;" statement_identifier : (if_statement "if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;" if (parenthesized_expression "(pbVar13 != (byte *)0x0)" ( (binary_expression "pbVar13 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;))) (expression_statement "(**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);" (call_expression "(**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26bf8))" ( (pointer_expression "**(code **)(pcVar29 + 0x26bf8)" * (pointer_expression "*(code **)(pcVar29 + 0x26bf8)" * (cast_expression "(code **)(pcVar29 + 0x26bf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26bf8)" ( (binary_expression "pcVar29 + 0x26bf8" identifier + number_literal) ))))) )) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674)" ( identifier , (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x674" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);" statement_identifier : (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" identifier (argument_list "(pbVar11,apbStack_490[0])" ( identifier , (subscript_expression "apbStack_490[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "pbVar19 = pbVar16;" (assignment_expression "pbVar19 = pbVar16" identifier = identifier) ;) (expression_statement "FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));" (call_expression "FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164))" identifier (argument_list "(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(pbVar11 + 0x164)" * (cast_expression "(undefined4 *)(pbVar11 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x164)" ( (binary_expression "pbVar11 + 0x164" identifier + number_literal) )))) ))) ;) (if_statement "if (pbVar17 != (byte *)0x0) break;" if (parenthesized_expression "(pbVar17 != (byte *)0x0)" ( (binary_expression "pbVar17 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0002ce24:\n    pbVar11[0x130] = 0;" statement_identifier : (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) }))) (expression_statement "pbVar19 = (byte *)0x10;" (assignment_expression "pbVar19 = (byte *)0x10" identifier = (cast_expression "(byte *)0x10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);" (call_expression "(**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26bd0))" ( (pointer_expression "**(code **)(pcVar29 + 0x26bd0)" * (pointer_expression "*(code **)(pcVar29 + 0x26bd0)" * (cast_expression "(code **)(pcVar29 + 0x26bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26bd0)" ( (binary_expression "pcVar29 + 0x26bd0" identifier + number_literal) ))))) )) (argument_list "(pbVar11,pbVar17,0x10,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar15 = FUN_0001c240(pbVar11,unaff_s6);" (assignment_expression "iVar15 = FUN_0001c240(pbVar11,unaff_s6)" identifier = (call_expression "FUN_0001c240(pbVar11,unaff_s6)" identifier (argument_list "(pbVar11,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "*(int *)(pbVar17 + 0x74) = iVar15;" (assignment_expression "*(int *)(pbVar17 + 0x74) = iVar15" (pointer_expression "*(int *)(pbVar17 + 0x74)" * (cast_expression "(int *)(pbVar17 + 0x74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0x74)" ( (binary_expression "pbVar17 + 0x74" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }" { (expression_statement "(**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);" (call_expression "(**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d54))" ( (pointer_expression "**(code **)(pcVar29 + 0x26d54)" * (pointer_expression "*(code **)(pcVar29 + 0x26d54)" * (cast_expression "(code **)(pcVar29 + 0x26d54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d54)" ( (binary_expression "pcVar29 + 0x26d54" identifier + number_literal) ))))) )) (argument_list "(iVar15,pbVar24,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = *(uint *)(pbVar17 + 0xf4);" (assignment_expression "uVar10 = *(uint *)(pbVar17 + 0xf4)" identifier = (pointer_expression "*(uint *)(pbVar17 + 0xf4)" * (cast_expression "(uint *)(pbVar17 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0xf4)" ( (binary_expression "pbVar17 + 0xf4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(uint *)(pbVar17 + 8);" (assignment_expression "uVar3 = *(uint *)(pbVar17 + 8)" identifier = (pointer_expression "*(uint *)(pbVar17 + 8)" * (cast_expression "(uint *)(pbVar17 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 8)" ( (binary_expression "pbVar17 + 8" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(pbVar17 + 0x78) = pbVar16;" (assignment_expression "*(byte **)(pbVar17 + 0x78) = pbVar16" (pointer_expression "*(byte **)(pbVar17 + 0x78)" * (cast_expression "(byte **)(pbVar17 + 0x78)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar17 + 0x78)" ( (binary_expression "pbVar17 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(pbVar17 + 0x7c) = pbStack_9c0;" (assignment_expression "*(byte **)(pbVar17 + 0x7c) = pbStack_9c0" (pointer_expression "*(byte **)(pbVar17 + 0x7c)" * (cast_expression "(byte **)(pbVar17 + 0x7c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar17 + 0x7c)" ( (binary_expression "pbVar17 + 0x7c" identifier + number_literal) )))) = identifier) ;) (expression_statement "pbVar11[0x374] = 0;" (assignment_expression "pbVar11[0x374] = 0" (subscript_expression "pbVar11[0x374]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x375] = 0;" (assignment_expression "pbVar11[0x375] = 0" (subscript_expression "pbVar11[0x375]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x376] = 0;" (assignment_expression "pbVar11[0x376] = 0" (subscript_expression "pbVar11[0x376]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x377] = 0;" (assignment_expression "pbVar11[0x377] = 0" (subscript_expression "pbVar11[0x377]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;" (assignment_expression "*(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10" (pointer_expression "*(uint *)(pbVar17 + 0xf4)" * (cast_expression "(uint *)(pbVar17 + 0xf4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0xf4)" ( (binary_expression "pbVar17 + 0xf4" identifier + number_literal) )))) = (binary_expression "uVar10 | 0x10" identifier | number_literal)) ;) (expression_statement "*(uint *)(pbVar17 + 8) = uVar3 | 0x1000;" (assignment_expression "*(uint *)(pbVar17 + 8) = uVar3 | 0x1000" (pointer_expression "*(uint *)(pbVar17 + 8)" * (cast_expression "(uint *)(pbVar17 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 8)" ( (binary_expression "pbVar17 + 8" identifier + number_literal) )))) = (binary_expression "uVar3 | 0x1000" identifier | number_literal)) ;) (expression_statement "pbVar19 = pbStack_9c0;" (assignment_expression "pbVar19 = pbStack_9c0" identifier = identifier) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002ce24;" goto statement_identifier ;) })) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184)" identifier = (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + -0x184)" ( (binary_expression "*(int *)(pcVar29 + 0x268ac) + -0x184" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" * (cast_expression "(int *)(pcVar29 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0x268ac)" ( (binary_expression "pcVar29 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);" statement_identifier : (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x26d2c);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002c938;" goto statement_identifier ;) (labeled_statement "LAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);" statement_identifier : (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" identifier = (pointer_expression "*(byte **)(pbVar11 + 0x14c)" * (cast_expression "(byte **)(pbVar11 + 0x14c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar11 + 0x14c)" ( (binary_expression "pbVar11 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);" statement_identifier : (expression_statement "FUN_0002b068(pbVar11,pbVar19);" (call_expression "FUN_0002b068(pbVar11,pbVar19)" identifier (argument_list "(pbVar11,pbVar19)" ( identifier , identifier ))) ;)) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" * (cast_expression "(ushort *)(pbVar11 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar11 + 0x3e2)" ( (binary_expression "pbVar11 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" identifier (argument_list "(pbVar11,pbVar17)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) (if_statement "if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }" if (parenthesized_expression "(pbVar24 != (byte *)0x0)" ( (binary_expression "pbVar24 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }" { (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x26d2c);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" * (cast_expression "(code **)(pcVar29 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0x26d2c)" ( (binary_expression "pcVar29 + 0x26d2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);" statement_identifier : (expression_statement "(*pcVar28)(pbVar11,pbVar24);" (call_expression "(*pcVar28)(pbVar11,pbVar24)" (parenthesized_expression "(*pcVar28)" ( (pointer_expression "*pcVar28" * identifier) )) (argument_list "(pbVar11,pbVar24)" ( identifier , identifier ))) ;)) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" identifier = identifier) ;) })) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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) )))) = (binary_expression IDENT | LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT) )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , 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 IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (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 IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) })) }))) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (return_statement return ;) })) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression & IDENT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (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 (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (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 (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) <= IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * IDENT) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * IDENT) <= IDENT) ))) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }))) })) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (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 IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;)) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression & IDENT)) ;) (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 (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression & IDENT)) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (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 IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (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 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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression (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 (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 IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) }))) (goto_statement goto statement_identifier ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) }))) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (goto_statement goto statement_identifier ;) })))
(function_definition "void FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)\n\n{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}" (primitive_type "void") (function_declarator "FUN_0002bba8(byte *param_1,byte *param_2,byte *param_3)" (identifier "FUN_0002bba8") (parameter_list "(byte *param_1,byte *param_2,byte *param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "byte *param_3" (type_identifier "byte") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  undefined *puVar2;\n  uint uVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  undefined4 uVar12;\n  byte *pbVar13;\n  undefined1 *puVar14;\n  int iVar15;\n  byte *pbVar16;\n  byte *pbVar17;\n  undefined4 uVar18;\n  byte *pbVar19;\n  undefined4 uVar20;\n  byte *unaff_s0;\n  byte *unaff_s1;\n  int *piVar21;\n  int *piVar22;\n  byte *unaff_s2;\n  byte *pbVar23;\n  byte *pbVar24;\n  undefined *puVar25;\n  byte *pbVar26;\n  byte *unaff_s5;\n  byte *unaff_s6;\n  byte *unaff_s7;\n  undefined *puVar27;\n  code *pcVar28;\n  byte *unaff_s8;\n  code *pcVar29;\n  code *pcVar30;\n  byte *pbStack_9c0;\n  byte *pbStack_9b4;\n  byte *pbStack_9a0;\n  byte abStack_99c [84];\n  byte bStack_948;\n  byte bStack_947;\n  byte bStack_946;\n  byte bStack_945;\n  undefined4 auStack_944 [31];\n  byte bStack_8c8;\n  byte bStack_8c7;\n  byte bStack_8c6;\n  byte bStack_8c5;\n  undefined1 auStack_8c4 [1024];\n  int iStack_4c4;\n  byte *pbStack_4c0;\n  byte *pbStack_4bc;\n  byte *pbStack_4b8;\n  undefined1 *puStack_4b4;\n  byte *pbStack_4b0;\n  byte *pbStack_4ac;\n  byte *pbStack_4a8;\n  byte *pbStack_4a4;\n  byte *pbStack_4a0;\n  code *pcStack_49c;\n  byte *apbStack_490 [2];\n  code *pcStack_488;\n  byte bStack_47d;\n  int iStack_47c;\n  byte *pbStack_478;\n  int *piStack_474;\n  byte *pbStack_470;\n  code *pcStack_46c;\n  code *pcStack_458;\n  int iStack_44c;\n  int iStack_448;\n  int iStack_444;\n  int iStack_440;\n  int iStack_43c;\n  int iStack_438;\n  int iStack_434;\n  int iStack_430;\n  undefined1 auStack_42c [4];\n  undefined1 auStack_428 [4];\n  undefined1 auStack_424 [4];\n  undefined1 auStack_420 [4];\n  undefined1 auStack_41c [4];\n  undefined1 auStack_418 [4];\n  undefined1 auStack_414 [4];\n  undefined1 auStack_410 [4];\n  int iStack_40c;\n  byte *pbStack_404;\n  int *piStack_400;\n  byte *pbStack_3fc;\n  undefined1 *puStack_3f8;\n  code *pcStack_3f4;\n  code *pcStack_3e0;\n  byte abStack_3d8 [4];\n  int iStack_3d4;\n  byte *pbStack_3cc;\n  int *piStack_3c8;\n  byte *pbStack_3c4;\n  undefined *puStack_3c0;\n  byte *pbStack_3bc;\n  byte *pbStack_3b8;\n  code *pcStack_3b4;\n  byte *pbStack_3a8;\n  code *pcStack_3a0;\n  undefined auStack_398 [4];\n  int iStack_394;\n  byte *pbStack_38c;\n  byte *pbStack_388;\n  byte *pbStack_384;\n  undefined *puStack_380;\n  code *pcStack_37c;\n  undefined *puStack_368;\n  byte *pbStack_35c;\n  byte *pbStack_358;\n  code *pcStack_354;\n  int local_334;\n  byte local_330 [768];\n  byte local_30;\n  byte local_2f;\n  byte local_2e;\n  int local_2c;\n  \n  puVar25 = PTR___stack_chk_guard_000534bc;\n  uVar3 = *(uint *)(param_1 + 0x124);\n  local_2c = *(int *)PTR___stack_chk_guard_000534bc;\n  pbVar19 = param_3;\n  if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }\n  pcVar29 = FUN_0002bedc;\n  puVar27 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puStack_368 = puVar27 + 0x2f114;\n  pbStack_35c = unaff_s0;\n  pbStack_358 = unaff_s1;\n  pcStack_354 = pcVar29;\n  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }\n  pcVar28 = *(code **)(puVar27 + 0x27640);\n  pcVar30 = FUN_0002bf78;\n  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2f078;\n  piVar21 = *(int **)(pcVar28 + 0x27544);\n  puStack_380 = puVar25;\n  iStack_394 = *piVar21;\n  pbVar24 = param_1;\n  pbStack_3cc = unaff_s0;\n  pcStack_3a0 = pcVar29;\n  pbStack_38c = unaff_s0;\n  pbStack_388 = unaff_s1;\n  pbStack_384 = unaff_s2;\n  pcStack_37c = pcVar30;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c0dc;\n  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ef14;\n  piVar22 = *(int **)(pcVar28 + 0x273e0);\n  iStack_3d4 = *piVar22;\n  pbVar13 = pbVar24;\n  pbStack_404 = pbStack_3cc;\n  pcStack_3e0 = pcVar29;\n  piStack_3c8 = piVar21;\n  pbStack_3c4 = unaff_s2;\n  puStack_3c0 = puVar25;\n  pbStack_3bc = param_2;\n  pbStack_3b8 = param_3;\n  pcStack_3b4 = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c348;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2eca8;\n  piVar21 = *(int **)(pcVar28 + 0x27174);\n  iStack_40c = *piVar21;\n  pbVar24 = pbVar13;\n  pbVar23 = pbStack_404;\n  pcStack_458 = pcVar29;\n  piStack_400 = piVar22;\n  pbStack_3fc = unaff_s2;\n  puStack_3f8 = puVar14;\n  pcStack_3f4 = pcVar30;\n  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }\n  pcVar28 = *(code **)(pcVar29 + -0x7ad4);\n  pcVar30 = FUN_0002c5dc;\n  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);\n  (*pcVar28)();\n  pcVar29 = pcVar28 + 0x2ea14;\n  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);\n  iStack_47c = *(int *)pbVar13;\n  pcStack_488 = pcVar29;\n  pbStack_478 = pbVar23;\n  piStack_474 = piVar21;\n  pbStack_470 = unaff_s2;\n  pcStack_46c = pcVar30;\n  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(pcVar29 + -0x7b6c);\n  pcVar28 = FUN_0002c770;\n  (*pcVar29)();\n  piVar21 = *(int **)(pcVar29 + 0x26d4c);\n  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);\n  iStack_4c4 = *piVar21;\n  pbVar24 = unaff_s2;\n  pbStack_4c0 = pbVar23;\n  pbStack_4bc = pbVar13;\n  pbStack_4b8 = unaff_s2;\n  puStack_4b4 = puVar14;\n  pbStack_4b0 = param_2;\n  pbStack_4ac = param_3;\n  pbStack_4a8 = unaff_s6;\n  pbStack_4a4 = unaff_s7;\n  pbStack_4a0 = unaff_s8;\n  pcStack_49c = pcVar28;\n  apbStack_490[0] = pbVar19;\n  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }\n  pbVar19 = (byte *)0x10;\n  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);\n  iVar15 = FUN_0001c240(pbVar11,unaff_s6);\n  *(int *)(pbVar17 + 0x74) = iVar15;\n  if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);\n  pbVar11[0x130] = 0;\n  pbVar11[0x131] = 0;\n  pbVar11[0x132] = 0;\n  pbVar11[0x133] = 0;\nLAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);\n  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n  FUN_00015834(pbVar11,pbVar17);\n  unaff_s2 = pbVar24;\n  if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }\n  goto LAB_0002c8bc;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "undefined4 uVar12;" (type_identifier "undefined4") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "undefined1 *puVar14;" (type_identifier "undefined1") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "undefined4 uVar20;" (type_identifier "undefined4") (identifier "uVar20") (; ";")) (declaration "byte *unaff_s0;" (type_identifier "byte") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "byte *unaff_s1;" (type_identifier "byte") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "int *piVar22;" (primitive_type "int") (pointer_declarator "*piVar22" (* "*") (identifier "piVar22")) (; ";")) (declaration "byte *unaff_s2;" (type_identifier "byte") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "byte *pbVar23;" (type_identifier "byte") (pointer_declarator "*pbVar23" (* "*") (identifier "pbVar23")) (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "undefined *puVar25;" (type_identifier "undefined") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "byte *pbVar26;" (type_identifier "byte") (pointer_declarator "*pbVar26" (* "*") (identifier "pbVar26")) (; ";")) (declaration "byte *unaff_s5;" (type_identifier "byte") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "byte *unaff_s6;" (type_identifier "byte") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "byte *unaff_s7;" (type_identifier "byte") (pointer_declarator "*unaff_s7" (* "*") (identifier "unaff_s7")) (; ";")) (declaration "undefined *puVar27;" (type_identifier "undefined") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "code *pcVar28;" (type_identifier "code") (pointer_declarator "*pcVar28" (* "*") (identifier "pcVar28")) (; ";")) (declaration "byte *unaff_s8;" (type_identifier "byte") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "code *pcVar29;" (type_identifier "code") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "code *pcVar30;" (type_identifier "code") (pointer_declarator "*pcVar30" (* "*") (identifier "pcVar30")) (; ";")) (declaration "byte *pbStack_9c0;" (type_identifier "byte") (pointer_declarator "*pbStack_9c0" (* "*") (identifier "pbStack_9c0")) (; ";")) (declaration "byte *pbStack_9b4;" (type_identifier "byte") (pointer_declarator "*pbStack_9b4" (* "*") (identifier "pbStack_9b4")) (; ";")) (declaration "byte *pbStack_9a0;" (type_identifier "byte") (pointer_declarator "*pbStack_9a0" (* "*") (identifier "pbStack_9a0")) (; ";")) (declaration "byte abStack_99c [84];" (type_identifier "byte") (array_declarator "abStack_99c [84]" (identifier "abStack_99c") ([ "[") (number_literal "84") (] "]")) (; ";")) (declaration "byte bStack_948;" (type_identifier "byte") (identifier "bStack_948") (; ";")) (declaration "byte bStack_947;" (type_identifier "byte") (identifier "bStack_947") (; ";")) (declaration "byte bStack_946;" (type_identifier "byte") (identifier "bStack_946") (; ";")) (declaration "byte bStack_945;" (type_identifier "byte") (identifier "bStack_945") (; ";")) (declaration "undefined4 auStack_944 [31];" (type_identifier "undefined4") (array_declarator "auStack_944 [31]" (identifier "auStack_944") ([ "[") (number_literal "31") (] "]")) (; ";")) (declaration "byte bStack_8c8;" (type_identifier "byte") (identifier "bStack_8c8") (; ";")) (declaration "byte bStack_8c7;" (type_identifier "byte") (identifier "bStack_8c7") (; ";")) (declaration "byte bStack_8c6;" (type_identifier "byte") (identifier "bStack_8c6") (; ";")) (declaration "byte bStack_8c5;" (type_identifier "byte") (identifier "bStack_8c5") (; ";")) (declaration "undefined1 auStack_8c4 [1024];" (type_identifier "undefined1") (array_declarator "auStack_8c4 [1024]" (identifier "auStack_8c4") ([ "[") (number_literal "1024") (] "]")) (; ";")) (declaration "int iStack_4c4;" (primitive_type "int") (identifier "iStack_4c4") (; ";")) (declaration "byte *pbStack_4c0;" (type_identifier "byte") (pointer_declarator "*pbStack_4c0" (* "*") (identifier "pbStack_4c0")) (; ";")) (declaration "byte *pbStack_4bc;" (type_identifier "byte") (pointer_declarator "*pbStack_4bc" (* "*") (identifier "pbStack_4bc")) (; ";")) (declaration "byte *pbStack_4b8;" (type_identifier "byte") (pointer_declarator "*pbStack_4b8" (* "*") (identifier "pbStack_4b8")) (; ";")) (declaration "undefined1 *puStack_4b4;" (type_identifier "undefined1") (pointer_declarator "*puStack_4b4" (* "*") (identifier "puStack_4b4")) (; ";")) (declaration "byte *pbStack_4b0;" (type_identifier "byte") (pointer_declarator "*pbStack_4b0" (* "*") (identifier "pbStack_4b0")) (; ";")) (declaration "byte *pbStack_4ac;" (type_identifier "byte") (pointer_declarator "*pbStack_4ac" (* "*") (identifier "pbStack_4ac")) (; ";")) (declaration "byte *pbStack_4a8;" (type_identifier "byte") (pointer_declarator "*pbStack_4a8" (* "*") (identifier "pbStack_4a8")) (; ";")) (declaration "byte *pbStack_4a4;" (type_identifier "byte") (pointer_declarator "*pbStack_4a4" (* "*") (identifier "pbStack_4a4")) (; ";")) (declaration "byte *pbStack_4a0;" (type_identifier "byte") (pointer_declarator "*pbStack_4a0" (* "*") (identifier "pbStack_4a0")) (; ";")) (declaration "code *pcStack_49c;" (type_identifier "code") (pointer_declarator "*pcStack_49c" (* "*") (identifier "pcStack_49c")) (; ";")) (declaration "byte *apbStack_490 [2];" (type_identifier "byte") (pointer_declarator "*apbStack_490 [2]" (* "*") (array_declarator "apbStack_490 [2]" (identifier "apbStack_490") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "code *pcStack_488;" (type_identifier "code") (pointer_declarator "*pcStack_488" (* "*") (identifier "pcStack_488")) (; ";")) (declaration "byte bStack_47d;" (type_identifier "byte") (identifier "bStack_47d") (; ";")) (declaration "int iStack_47c;" (primitive_type "int") (identifier "iStack_47c") (; ";")) (declaration "byte *pbStack_478;" (type_identifier "byte") (pointer_declarator "*pbStack_478" (* "*") (identifier "pbStack_478")) (; ";")) (declaration "int *piStack_474;" (primitive_type "int") (pointer_declarator "*piStack_474" (* "*") (identifier "piStack_474")) (; ";")) (declaration "byte *pbStack_470;" (type_identifier "byte") (pointer_declarator "*pbStack_470" (* "*") (identifier "pbStack_470")) (; ";")) (declaration "code *pcStack_46c;" (type_identifier "code") (pointer_declarator "*pcStack_46c" (* "*") (identifier "pcStack_46c")) (; ";")) (declaration "code *pcStack_458;" (type_identifier "code") (pointer_declarator "*pcStack_458" (* "*") (identifier "pcStack_458")) (; ";")) (declaration "int iStack_44c;" (primitive_type "int") (identifier "iStack_44c") (; ";")) (declaration "int iStack_448;" (primitive_type "int") (identifier "iStack_448") (; ";")) (declaration "int iStack_444;" (primitive_type "int") (identifier "iStack_444") (; ";")) (declaration "int iStack_440;" (primitive_type "int") (identifier "iStack_440") (; ";")) (declaration "int iStack_43c;" (primitive_type "int") (identifier "iStack_43c") (; ";")) (declaration "int iStack_438;" (primitive_type "int") (identifier "iStack_438") (; ";")) (declaration "int iStack_434;" (primitive_type "int") (identifier "iStack_434") (; ";")) (declaration "int iStack_430;" (primitive_type "int") (identifier "iStack_430") (; ";")) (declaration "undefined1 auStack_42c [4];" (type_identifier "undefined1") (array_declarator "auStack_42c [4]" (identifier "auStack_42c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_428 [4];" (type_identifier "undefined1") (array_declarator "auStack_428 [4]" (identifier "auStack_428") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_424 [4];" (type_identifier "undefined1") (array_declarator "auStack_424 [4]" (identifier "auStack_424") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_420 [4];" (type_identifier "undefined1") (array_declarator "auStack_420 [4]" (identifier "auStack_420") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_41c [4];" (type_identifier "undefined1") (array_declarator "auStack_41c [4]" (identifier "auStack_41c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_418 [4];" (type_identifier "undefined1") (array_declarator "auStack_418 [4]" (identifier "auStack_418") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_414 [4];" (type_identifier "undefined1") (array_declarator "auStack_414 [4]" (identifier "auStack_414") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_410 [4];" (type_identifier "undefined1") (array_declarator "auStack_410 [4]" (identifier "auStack_410") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_40c;" (primitive_type "int") (identifier "iStack_40c") (; ";")) (declaration "byte *pbStack_404;" (type_identifier "byte") (pointer_declarator "*pbStack_404" (* "*") (identifier "pbStack_404")) (; ";")) (declaration "int *piStack_400;" (primitive_type "int") (pointer_declarator "*piStack_400" (* "*") (identifier "piStack_400")) (; ";")) (declaration "byte *pbStack_3fc;" (type_identifier "byte") (pointer_declarator "*pbStack_3fc" (* "*") (identifier "pbStack_3fc")) (; ";")) (declaration "undefined1 *puStack_3f8;" (type_identifier "undefined1") (pointer_declarator "*puStack_3f8" (* "*") (identifier "puStack_3f8")) (; ";")) (declaration "code *pcStack_3f4;" (type_identifier "code") (pointer_declarator "*pcStack_3f4" (* "*") (identifier "pcStack_3f4")) (; ";")) (declaration "code *pcStack_3e0;" (type_identifier "code") (pointer_declarator "*pcStack_3e0" (* "*") (identifier "pcStack_3e0")) (; ";")) (declaration "byte abStack_3d8 [4];" (type_identifier "byte") (array_declarator "abStack_3d8 [4]" (identifier "abStack_3d8") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_3d4;" (primitive_type "int") (identifier "iStack_3d4") (; ";")) (declaration "byte *pbStack_3cc;" (type_identifier "byte") (pointer_declarator "*pbStack_3cc" (* "*") (identifier "pbStack_3cc")) (; ";")) (declaration "int *piStack_3c8;" (primitive_type "int") (pointer_declarator "*piStack_3c8" (* "*") (identifier "piStack_3c8")) (; ";")) (declaration "byte *pbStack_3c4;" (type_identifier "byte") (pointer_declarator "*pbStack_3c4" (* "*") (identifier "pbStack_3c4")) (; ";")) (declaration "undefined *puStack_3c0;" (type_identifier "undefined") (pointer_declarator "*puStack_3c0" (* "*") (identifier "puStack_3c0")) (; ";")) (declaration "byte *pbStack_3bc;" (type_identifier "byte") (pointer_declarator "*pbStack_3bc" (* "*") (identifier "pbStack_3bc")) (; ";")) (declaration "byte *pbStack_3b8;" (type_identifier "byte") (pointer_declarator "*pbStack_3b8" (* "*") (identifier "pbStack_3b8")) (; ";")) (declaration "code *pcStack_3b4;" (type_identifier "code") (pointer_declarator "*pcStack_3b4" (* "*") (identifier "pcStack_3b4")) (; ";")) (declaration "byte *pbStack_3a8;" (type_identifier "byte") (pointer_declarator "*pbStack_3a8" (* "*") (identifier "pbStack_3a8")) (; ";")) (declaration "code *pcStack_3a0;" (type_identifier "code") (pointer_declarator "*pcStack_3a0" (* "*") (identifier "pcStack_3a0")) (; ";")) (declaration "undefined auStack_398 [4];" (type_identifier "undefined") (array_declarator "auStack_398 [4]" (identifier "auStack_398") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_394;" (primitive_type "int") (identifier "iStack_394") (; ";")) (declaration "byte *pbStack_38c;" (type_identifier "byte") (pointer_declarator "*pbStack_38c" (* "*") (identifier "pbStack_38c")) (; ";")) (declaration "byte *pbStack_388;" (type_identifier "byte") (pointer_declarator "*pbStack_388" (* "*") (identifier "pbStack_388")) (; ";")) (declaration "byte *pbStack_384;" (type_identifier "byte") (pointer_declarator "*pbStack_384" (* "*") (identifier "pbStack_384")) (; ";")) (declaration "undefined *puStack_380;" (type_identifier "undefined") (pointer_declarator "*puStack_380" (* "*") (identifier "puStack_380")) (; ";")) (declaration "code *pcStack_37c;" (type_identifier "code") (pointer_declarator "*pcStack_37c" (* "*") (identifier "pcStack_37c")) (; ";")) (declaration "undefined *puStack_368;" (type_identifier "undefined") (pointer_declarator "*puStack_368" (* "*") (identifier "puStack_368")) (; ";")) (declaration "byte *pbStack_35c;" (type_identifier "byte") (pointer_declarator "*pbStack_35c" (* "*") (identifier "pbStack_35c")) (; ";")) (declaration "byte *pbStack_358;" (type_identifier "byte") (pointer_declarator "*pbStack_358" (* "*") (identifier "pbStack_358")) (; ";")) (declaration "code *pcStack_354;" (type_identifier "code") (pointer_declarator "*pcStack_354" (* "*") (identifier "pcStack_354")) (; ";")) (declaration "int local_334;" (primitive_type "int") (identifier "local_334") (; ";")) (declaration "byte local_330 [768];" (type_identifier "byte") (array_declarator "local_330 [768]" (identifier "local_330") ([ "[") (number_literal "768") (] "]")) (; ";")) (declaration "byte local_30;" (type_identifier "byte") (identifier "local_30") (; ";")) (declaration "byte local_2f;" (type_identifier "byte") (identifier "local_2f") (; ";")) (declaration "byte local_2e;" (type_identifier "byte") (identifier "local_2e") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar25 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar25 = PTR___stack_chk_guard_000534bc" (identifier "puVar25") (= "=") (identifier "PTR___stack_chk_guard_000534bc")) (; ";")) (expression_statement "uVar3 = *(uint *)(param_1 + 0x124);" (assignment_expression "uVar3 = *(uint *)(param_1 + 0x124)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_1 + 0x124)" (* "*") (cast_expression "(uint *)(param_1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")"))))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000534bc" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000534bc" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000534bc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000534bc")))) (; ";")) (expression_statement "pbVar19 = param_3;" (assignment_expression "pbVar19 = param_3" (identifier "pbVar19") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((uVar3 & 1) == 0) {\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }\n  else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" (if "if") (parenthesized_expression "((uVar3 & 1) == 0)" (( "(") (binary_expression "(uVar3 & 1) == 0" (parenthesized_expression "(uVar3 & 1)" (( "(") (binary_expression "uVar3 & 1" (identifier "uVar3") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002bebc:\n    param_3 = unaff_s5;\n    (*(code *)PTR_png_chunk_error_0005351c)();\n  }" ({ "{") (labeled_statement "LAB_0002bebc:\n    param_3 = unaff_s5;" (statement_identifier "LAB_0002bebc") (: ":") (expression_statement "param_3 = unaff_s5;" (assignment_expression "param_3 = unaff_s5" (identifier "param_3") (= "=") (identifier "unaff_s5")) (; ";"))) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" (* "*") (cast_expression "(code *)PTR_png_chunk_error_0005351c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_error_0005351c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" (else "else") (compound_statement "{\n    pbVar24 = param_1;\n    if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }\n    unaff_s1 = param_1;\n    if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }\n    *(uint *)(param_1 + 0x124) = uVar3 | 2;\n    if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }\n    unaff_s2 = (byte *)0xaaaa0000;\n    if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }\n    FUN_0002b068(param_1,param_3);\n    if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }\n  }" ({ "{") (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" (identifier "pbVar24") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((uVar3 & 2) != 0) {\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }" (if "if") (parenthesized_expression "((uVar3 & 2) != 0)" (( "(") (binary_expression "(uVar3 & 2) != 0" (parenthesized_expression "(uVar3 & 2)" (( "(") (binary_expression "uVar3 & 2" (identifier "uVar3") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();\n      param_1 = pbVar24;\n      goto LAB_0002bebc;\n    }" ({ "{") (labeled_statement "LAB_0002beac:\n      (*(code *)PTR_png_chunk_error_0005351c)();" (statement_identifier "LAB_0002beac") (: ":") (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" (* "*") (cast_expression "(code *)PTR_png_chunk_error_0005351c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_error_0005351c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "param_1 = pbVar24;" (assignment_expression "param_1 = pbVar24" (identifier "param_1") (= "=") (identifier "pbVar24")) (; ";")) (goto_statement "goto LAB_0002bebc;" (goto "goto") (statement_identifier "LAB_0002bebc") (; ";")) (} "}"))) (expression_statement "unaff_s1 = param_1;" (assignment_expression "unaff_s1 = param_1" (identifier "unaff_s1") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((uVar3 & 4) != 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }" (if "if") (parenthesized_expression "((uVar3 & 4) != 0)" (( "(") (binary_expression "(uVar3 & 4) != 0" (parenthesized_expression "(uVar3 & 4)" (( "(") (binary_expression "uVar3 & 4" (identifier "uVar3") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\nLAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_00053484)();\n      unaff_s5 = param_3;\n      goto LAB_0002beac;\n    }" ({ "{") (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" (identifier "FUN_0002b068") (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" (* "*") (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_benign_error_0005349c"))) () ")")) (argument_list "(param_1,PTR_s_nt_0005301c + 0x68c)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x68c" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x68c")) () ")"))) (; ";")) (labeled_statement "LAB_0002bd88:\n      if (local_2c == *(int *)puVar25) {\n        return;\n      }" (statement_identifier "LAB_0002bd88") (: ":") (if_statement "if (local_2c == *(int *)puVar25) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar25)" (( "(") (binary_expression "local_2c == *(int *)puVar25" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar25" (* "*") (cast_expression "(int *)puVar25" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar25")))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "(*(code *)PTR___stack_chk_fail_00053484)();" (call_expression "(*(code *)PTR___stack_chk_fail_00053484)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00053484)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00053484" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00053484" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00053484"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "unaff_s5 = param_3;" (assignment_expression "unaff_s5 = param_3" (identifier "unaff_s5") (= "=") (identifier "param_3")) (; ";")) (goto_statement "goto LAB_0002beac;" (goto "goto") (statement_identifier "LAB_0002beac") (; ";")) (} "}"))) (expression_statement "*(uint *)(param_1 + 0x124) = uVar3 | 2;" (assignment_expression "*(uint *)(param_1 + 0x124) = uVar3 | 2" (pointer_expression "*(uint *)(param_1 + 0x124)" (* "*") (cast_expression "(uint *)(param_1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (= "=") (binary_expression "uVar3 | 2" (identifier "uVar3") (| "|") (number_literal "2"))) (; ";")) (if_statement "if ((param_1[0x1ff] & 2) == 0) {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" (if "if") (parenthesized_expression "((param_1[0x1ff] & 2) == 0)" (( "(") (binary_expression "(param_1[0x1ff] & 2) == 0" (parenthesized_expression "(param_1[0x1ff] & 2)" (( "(") (binary_expression "param_1[0x1ff] & 2" (subscript_expression "param_1[0x1ff]" (identifier "param_1") ([ "[") (number_literal "0x1ff") (] "]")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);\n      goto LAB_0002bd88;\n    }" ({ "{") (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" (identifier "FUN_0002b068") (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" (* "*") (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_benign_error_0005349c"))) () ")")) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6b4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x6b4" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x6b4")) () ")"))) (; ";")) (goto_statement "goto LAB_0002bd88;" (goto "goto") (statement_identifier "LAB_0002bd88") (; ";")) (} "}"))) (expression_statement "unaff_s2 = (byte *)0xaaaa0000;" (assignment_expression "unaff_s2 = (byte *)0xaaaa0000" (identifier "unaff_s2") (= "=") (cast_expression "(byte *)0xaaaa0000" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xaaaa0000"))) (; ";")) (if_statement "if ((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" (if "if") (parenthesized_expression "((param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3)))" (( "(") (binary_expression "(param_3 < &DAT_00000301) &&\n       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))" (parenthesized_expression "(param_3 < &DAT_00000301)" (( "(") (binary_expression "param_3 < &DAT_00000301" (identifier "param_3") (< "<") (pointer_expression "&DAT_00000301" (& "&") (identifier "DAT_00000301"))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))" (( "(") (comma_expression "unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3)" (assignment_expression "unaff_s2 = (byte *)((uint)param_3 / 3)" (identifier "unaff_s2") (= "=") (cast_expression "(byte *)((uint)param_3 / 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)param_3 / 3)" (( "(") (binary_expression "(uint)param_3 / 3" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (/ "/") (number_literal "3")) () ")")))) (, ",") (binary_expression "param_3 == (byte *)((int)unaff_s2 * 3)" (identifier "param_3") (== "==") (cast_expression "(byte *)((int)unaff_s2 * 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s2 * 3)" (( "(") (binary_expression "(int)unaff_s2 * 3" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (* "*") (number_literal "3")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n      local_334 = (int)unaff_s2 << 1;\n      if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }\n      unaff_s8 = local_330;\n      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));\n      pbVar19 = unaff_s8;\n      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);\n      if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }\n      goto LAB_0002bd88;\n    }" ({ "{") (expression_statement "local_334 = (int)unaff_s2 << 1;" (assignment_expression "local_334 = (int)unaff_s2 << 1" (identifier "local_334") (= "=") (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (param_1[0x1ff] == 3) {\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }\n      else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" (if "if") (parenthesized_expression "(param_1[0x1ff] == 3)" (( "(") (binary_expression "param_1[0x1ff] == 3" (subscript_expression "param_1[0x1ff]" (identifier "param_1") ([ "[") (number_literal "0x1ff") (] "]")) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));\n        if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }\n        local_334 = (int)unaff_s2 << 1;\n        if (0 < (int)unaff_s2) goto LAB_0002bc70;\n      }" ({ "{") (expression_statement "pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));" (assignment_expression "pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f))" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(1 << (param_1[0x200] & 0x1f))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(1 << (param_1[0x200] & 0x1f))" (( "(") (binary_expression "1 << (param_1[0x200] & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(param_1[0x200] & 0x1f)" (( "(") (binary_expression "param_1[0x200] & 0x1f" (subscript_expression "param_1[0x200]" (identifier "param_1") ([ "[") (number_literal "0x200") (] "]")) (& "&") (number_literal "0x1f")) () ")"))) () ")")))) (; ";")) (if_statement "if ((int)pbVar19 < (int)unaff_s2) {\n          unaff_s2 = pbVar19;\n        }" (if "if") (parenthesized_expression "((int)pbVar19 < (int)unaff_s2)" (( "(") (binary_expression "(int)pbVar19 < (int)unaff_s2" (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")) (< "<") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) () ")")) (compound_statement "{\n          unaff_s2 = pbVar19;\n        }" ({ "{") (expression_statement "unaff_s2 = pbVar19;" (assignment_expression "unaff_s2 = pbVar19" (identifier "unaff_s2") (= "=") (identifier "pbVar19")) (; ";")) (} "}"))) (expression_statement "local_334 = (int)unaff_s2 << 1;" (assignment_expression "local_334 = (int)unaff_s2 << 1" (identifier "local_334") (= "=") (binary_expression "(int)unaff_s2 << 1" (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2")) (<< "<<") (number_literal "1"))) (; ";")) (if_statement "if (0 < (int)unaff_s2) goto LAB_0002bc70;" (if "if") (parenthesized_expression "(0 < (int)unaff_s2)" (( "(") (binary_expression "0 < (int)unaff_s2" (number_literal "0") (< "<") (cast_expression "(int)unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s2"))) () ")")) (goto_statement "goto LAB_0002bc70;" (goto "goto") (statement_identifier "LAB_0002bc70") (; ";"))) (} "}")) (else_clause "else if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" (else "else") (if_statement "if (unaff_s2 != (byte *)0x0) {\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" (if "if") (parenthesized_expression "(unaff_s2 != (byte *)0x0)" (( "(") (binary_expression "unaff_s2 != (byte *)0x0" (identifier "unaff_s2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002bc70:\n        unaff_s7 = &local_30;\n        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);\n        pbVar19 = local_330;\n        do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);\n      }" ({ "{") (labeled_statement "LAB_0002bc70:\n        unaff_s7 = &local_30;" (statement_identifier "LAB_0002bc70") (: ":") (expression_statement "unaff_s7 = &local_30;" (assignment_expression "unaff_s7 = &local_30" (identifier "unaff_s7") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";"))) (expression_statement "unaff_s6 = local_330 + (int)(unaff_s2 + local_334);" (assignment_expression "unaff_s6 = local_330 + (int)(unaff_s2 + local_334)" (identifier "unaff_s6") (= "=") (binary_expression "local_330 + (int)(unaff_s2 + local_334)" (identifier "local_330") (+ "+") (cast_expression "(int)(unaff_s2 + local_334)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s2 + local_334)" (( "(") (binary_expression "unaff_s2 + local_334" (identifier "unaff_s2") (+ "+") (identifier "local_334")) () ")"))))) (; ";")) (expression_statement "pbVar19 = local_330;" (assignment_expression "pbVar19 = local_330" (identifier "pbVar19") (= "=") (identifier "local_330")) (; ";")) (do_statement "do {\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        } while (unaff_s6 != unaff_s0);" (do "do") (compound_statement "{\n          FUN_0002aef8(param_1,unaff_s7,3);\n          unaff_s0 = pbVar19 + 3;\n          *pbVar19 = local_30;\n          pbVar19[1] = local_2f;\n          pbVar19[2] = local_2e;\n          pbVar19 = unaff_s0;\n        }" ({ "{") (expression_statement "FUN_0002aef8(param_1,unaff_s7,3);" (call_expression "FUN_0002aef8(param_1,unaff_s7,3)" (identifier "FUN_0002aef8") (argument_list "(param_1,unaff_s7,3)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s7") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "unaff_s0 = pbVar19 + 3;" (assignment_expression "unaff_s0 = pbVar19 + 3" (identifier "unaff_s0") (= "=") (binary_expression "pbVar19 + 3" (identifier "pbVar19") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*pbVar19 = local_30;" (assignment_expression "*pbVar19 = local_30" (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) (= "=") (identifier "local_30")) (; ";")) (expression_statement "pbVar19[1] = local_2f;" (assignment_expression "pbVar19[1] = local_2f" (subscript_expression "pbVar19[1]" (identifier "pbVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_2f")) (; ";")) (expression_statement "pbVar19[2] = local_2e;" (assignment_expression "pbVar19[2] = local_2e" (subscript_expression "pbVar19[2]" (identifier "pbVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_2e")) (; ";")) (expression_statement "pbVar19 = unaff_s0;" (assignment_expression "pbVar19 = unaff_s0" (identifier "pbVar19") (= "=") (identifier "unaff_s0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(unaff_s6 != unaff_s0)" (( "(") (binary_expression "unaff_s6 != unaff_s0" (identifier "unaff_s6") (!= "!=") (identifier "unaff_s0")) () ")")) (; ";")) (} "}"))))) (expression_statement "unaff_s8 = local_330;" (assignment_expression "unaff_s8 = local_330" (identifier "unaff_s8") (= "=") (identifier "local_330")) (; ";")) (expression_statement "FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));" (call_expression "FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334))" (identifier "FUN_0002b068") (argument_list "(param_1,(int)param_3 - (int)(unaff_s2 + local_334))" (( "(") (identifier "param_1") (, ",") (binary_expression "(int)param_3 - (int)(unaff_s2 + local_334)" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (- "-") (cast_expression "(int)(unaff_s2 + local_334)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s2 + local_334)" (( "(") (binary_expression "unaff_s2 + local_334" (identifier "unaff_s2") (+ "+") (identifier "local_334")) () ")")))) () ")"))) (; ";")) (expression_statement "pbVar19 = unaff_s8;" (assignment_expression "pbVar19 = unaff_s8" (identifier "pbVar19") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "(*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);" (call_expression "(*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2)" (parenthesized_expression "(*(code *)PTR_png_set_PLTE_000533d0)" (( "(") (pointer_expression "*(code *)PTR_png_set_PLTE_000533d0" (* "*") (cast_expression "(code *)PTR_png_set_PLTE_000533d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_set_PLTE_000533d0"))) () ")")) (argument_list "(param_1,param_2,unaff_s8,unaff_s2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "unaff_s8") (, ",") (identifier "unaff_s2") () ")"))) (; ";")) (if_statement "if (*(short *)(param_1 + 0x1f8) == 0) {\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }\n      else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(short *)(param_1 + 0x1f8) == 0)" (( "(") (binary_expression "*(short *)(param_1 + 0x1f8) == 0" (pointer_expression "*(short *)(param_1 + 0x1f8)" (* "*") (cast_expression "(short *)(param_1 + 0x1f8)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1f8)" (( "(") (binary_expression "param_1 + 0x1f8" (identifier "param_1") (+ "+") (number_literal "0x1f8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }\n      }" ({ "{") (if_statement "if (param_2 != (byte *)0x0) {\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" (if "if") (parenthesized_expression "(param_2 != (byte *)0x0)" (( "(") (binary_expression "param_2 != (byte *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar3 = *(uint *)(param_2 + 8);\n          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;\n          goto LAB_0002bd24;\n        }" ({ "{") (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;" (if "if") (parenthesized_expression "((uVar3 & 0x10) != 0)" (( "(") (binary_expression "(uVar3 & 0x10) != 0" (parenthesized_expression "(uVar3 & 0x10)" (( "(") (binary_expression "uVar3 & 0x10" (identifier "uVar3") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002bd04;" (goto "goto") (statement_identifier "LAB_0002bd04") (; ";"))) (goto_statement "goto LAB_0002bd24;" (goto "goto") (statement_identifier "LAB_0002bd24") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" (else "else") (compound_statement "{\n        param_1[0x1f8] = 0;\n        param_1[0x1f9] = 0;\n        if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }\n      }" ({ "{") (expression_statement "param_1[0x1f8] = 0;" (assignment_expression "param_1[0x1f8] = 0" (subscript_expression "param_1[0x1f8]" (identifier "param_1") ([ "[") (number_literal "0x1f8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[0x1f9] = 0;" (assignment_expression "param_1[0x1f9] = 0" (subscript_expression "param_1[0x1f9]" (identifier "param_1") ([ "[") (number_literal "0x1f9") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 == (byte *)0x0) {\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }\n        else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x0)" (( "(") (binary_expression "param_2 == (byte *)0x0" (identifier "param_2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pbVar24 = param_1;\n          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);\n        }" ({ "{") (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" (identifier "pbVar24") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" (* "*") (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_benign_error_0005349c"))) () ")")) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6d0)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x6d0" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x6d0")) () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" (else "else") (compound_statement "{\nLAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;\n          puVar27 = PTR_s_nt_0005301c;\n          param_2[0x16] = 0;\n          param_2[0x17] = 0;\n          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);\n          uVar3 = *(uint *)(param_2 + 8);\nLAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }\n          pbVar24 = param_1;\n          if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }\n        }" ({ "{") (labeled_statement "LAB_0002bd04:\n          puVar2 = PTR_png_chunk_benign_error_0005349c;" (statement_identifier "LAB_0002bd04") (: ":") (expression_statement "puVar2 = PTR_png_chunk_benign_error_0005349c;" (assignment_expression "puVar2 = PTR_png_chunk_benign_error_0005349c" (identifier "puVar2") (= "=") (identifier "PTR_png_chunk_benign_error_0005349c")) (; ";"))) (expression_statement "puVar27 = PTR_s_nt_0005301c;" (assignment_expression "puVar27 = PTR_s_nt_0005301c" (identifier "puVar27") (= "=") (identifier "PTR_s_nt_0005301c")) (; ";")) (expression_statement "param_2[0x16] = 0;" (assignment_expression "param_2[0x16] = 0" (subscript_expression "param_2[0x16]" (identifier "param_2") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2[0x17] = 0;" (assignment_expression "param_2[0x17] = 0" (subscript_expression "param_2[0x17]" (identifier "param_2") ([ "[") (number_literal "0x17") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar2)(param_1,puVar27 + 0x6d0);" (call_expression "(*(code *)puVar2)(param_1,puVar27 + 0x6d0)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(param_1,puVar27 + 0x6d0)" (( "(") (identifier "param_1") (, ",") (binary_expression "puVar27 + 0x6d0" (identifier "puVar27") (+ "+") (number_literal "0x6d0")) () ")"))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (labeled_statement "LAB_0002bd24:\n          if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" (statement_identifier "LAB_0002bd24") (: ":") (if_statement "if ((uVar3 & 0x40) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" (if "if") (parenthesized_expression "((uVar3 & 0x40) != 0)" (( "(") (binary_expression "(uVar3 & 0x40) != 0" (parenthesized_expression "(uVar3 & 0x40)" (( "(") (binary_expression "uVar3 & 0x40" (identifier "uVar3") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);\n            uVar3 = *(uint *)(param_2 + 8);\n          }" ({ "{") (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" (* "*") (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_benign_error_0005349c"))) () ")")) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6e4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x6e4" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x6e4")) () ")"))) (; ";")) (expression_statement "uVar3 = *(uint *)(param_2 + 8);" (assignment_expression "uVar3 = *(uint *)(param_2 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_2 + 8)" (* "*") (cast_expression "(uint *)(param_2 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 8)" (( "(") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" (identifier "pbVar24") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((uVar3 & 0x20) != 0) {\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }" (if "if") (parenthesized_expression "((uVar3 & 0x20) != 0)" (( "(") (binary_expression "(uVar3 & 0x20) != 0" (parenthesized_expression "(uVar3 & 0x20)" (( "(") (binary_expression "uVar3 & 0x20" (identifier "uVar3") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);\n          }" ({ "{") (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" (* "*") (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_benign_error_0005349c"))) () ")")) (argument_list "(param_1,PTR_s_nt_0005301c + 0x6f8)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x6f8" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x6f8")) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")))) (goto_statement "goto LAB_0002bd88;" (goto "goto") (statement_identifier "LAB_0002bd88") (; ";")) (} "}"))) (expression_statement "FUN_0002b068(param_1,param_3);" (call_expression "FUN_0002b068(param_1,param_3)" (identifier "FUN_0002b068") (argument_list "(param_1,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") () ")"))) (; ";")) (if_statement "if (param_1[0x1ff] != 3) {\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" (if "if") (parenthesized_expression "(param_1[0x1ff] != 3)" (( "(") (binary_expression "param_1[0x1ff] != 3" (subscript_expression "param_1[0x1ff]" (identifier "param_1") ([ "[") (number_literal "0x1ff") (] "]")) (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      goto LAB_0002bd88;\n    }" ({ "{") (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c)" (parenthesized_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_benign_error_0005349c" (* "*") (cast_expression "(code *)PTR_png_chunk_benign_error_0005349c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_benign_error_0005349c"))) () ")")) (argument_list "(param_1,PTR_s_nt_0005301c + 0x69c)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x69c" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x69c")) () ")"))) (; ";")) (goto_statement "goto LAB_0002bd88;" (goto "goto") (statement_identifier "LAB_0002bd88") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar29 = FUN_0002bedc;" (assignment_expression "pcVar29 = FUN_0002bedc" (identifier "pcVar29") (= "=") (identifier "FUN_0002bedc")) (; ";")) (expression_statement "puVar27 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar27 = PTR_png_chunk_error_0005351c" (identifier "puVar27") (= "=") (identifier "PTR_png_chunk_error_0005351c")) (; ";")) (expression_statement "(*(code *)PTR_png_chunk_error_0005351c)();" (call_expression "(*(code *)PTR_png_chunk_error_0005351c)()" (parenthesized_expression "(*(code *)PTR_png_chunk_error_0005351c)" (( "(") (pointer_expression "*(code *)PTR_png_chunk_error_0005351c" (* "*") (cast_expression "(code *)PTR_png_chunk_error_0005351c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_png_chunk_error_0005351c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puStack_368 = puVar27 + 0x2f114;" (assignment_expression "puStack_368 = puVar27 + 0x2f114" (identifier "puStack_368") (= "=") (binary_expression "puVar27 + 0x2f114" (identifier "puVar27") (+ "+") (number_literal "0x2f114"))) (; ";")) (expression_statement "pbStack_35c = unaff_s0;" (assignment_expression "pbStack_35c = unaff_s0" (identifier "pbStack_35c") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "pbStack_358 = unaff_s1;" (assignment_expression "pbStack_358 = unaff_s1" (identifier "pbStack_358") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "pcStack_354 = pcVar29;" (assignment_expression "pcStack_354 = pcVar29" (identifier "pcStack_354") (= "=") (identifier "pcVar29")) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x124) & 5) == 5) {\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 5) == 5)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x124) & 5) == 5" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 5)" (( "(") (binary_expression "*(uint *)(param_1 + 0x124) & 5" (pointer_expression "*(uint *)(param_1 + 0x124)" (* "*") (cast_expression "(uint *)(param_1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "5")) () ")")) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;\n    FUN_0002b068();\n    if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }\n    return;\n  }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;" (assignment_expression "*(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18" (pointer_expression "*(uint *)(param_1 + 0x124)" (* "*") (cast_expression "(uint *)(param_1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x124) | 0x18" (pointer_expression "*(uint *)(param_1 + 0x124)" (* "*") (cast_expression "(uint *)(param_1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (| "|") (number_literal "0x18"))) (; ";")) (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (pbVar19 != (byte *)0x0) {\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" (if "if") (parenthesized_expression "(pbVar19 != (byte *)0x0)" (( "(") (binary_expression "pbVar19 != (byte *)0x0" (identifier "pbVar19") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);\n      return;\n    }" ({ "{") (expression_statement "(**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(puStack_368 + -0x7b54))" (( "(") (pointer_expression "**(code **)(puStack_368 + -0x7b54)" (* "*") (pointer_expression "*(code **)(puStack_368 + -0x7b54)" (* "*") (cast_expression "(code **)(puStack_368 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_368 + -0x7b54)" (( "(") (binary_expression "puStack_368 + -0x7b54" (identifier "puStack_368") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c)" (( "(") (identifier "param_1") (, ",") (binary_expression "*(int *)(puStack_368 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_368 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_368 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_368 + -0x7fd4)" (( "(") (binary_expression "puStack_368 + -0x7fd4" (identifier "puStack_368") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x69c")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar28 = *(code **)(puVar27 + 0x27640);" (assignment_expression "pcVar28 = *(code **)(puVar27 + 0x27640)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(puVar27 + 0x27640)" (* "*") (cast_expression "(code **)(puVar27 + 0x27640)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar27 + 0x27640)" (( "(") (binary_expression "puVar27 + 0x27640" (identifier "puVar27") (+ "+") (number_literal "0x27640")) () ")"))))) (; ";")) (expression_statement "pcVar30 = FUN_0002bf78;" (assignment_expression "pcVar30 = FUN_0002bf78" (identifier "pcVar30") (= "=") (identifier "FUN_0002bf78")) (; ";")) (expression_statement "pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);" (assignment_expression "pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(*(int *)(puVar27 + 0x27140) + 0x68c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar27 + 0x27140) + 0x68c)" (( "(") (binary_expression "*(int *)(puVar27 + 0x27140) + 0x68c" (pointer_expression "*(int *)(puVar27 + 0x27140)" (* "*") (cast_expression "(int *)(puVar27 + 0x27140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar27 + 0x27140)" (( "(") (binary_expression "puVar27 + 0x27140" (identifier "puVar27") (+ "+") (number_literal "0x27140")) () ")")))) (+ "+") (number_literal "0x68c")) () ")")))) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar29 = pcVar28 + 0x2f078;" (assignment_expression "pcVar29 = pcVar28 + 0x2f078" (identifier "pcVar29") (= "=") (binary_expression "pcVar28 + 0x2f078" (identifier "pcVar28") (+ "+") (number_literal "0x2f078"))) (; ";")) (expression_statement "piVar21 = *(int **)(pcVar28 + 0x27544);" (assignment_expression "piVar21 = *(int **)(pcVar28 + 0x27544)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(pcVar28 + 0x27544)" (* "*") (cast_expression "(int **)(pcVar28 + 0x27544)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x27544)" (( "(") (binary_expression "pcVar28 + 0x27544" (identifier "pcVar28") (+ "+") (number_literal "0x27544")) () ")"))))) (; ";")) (expression_statement "puStack_380 = puVar25;" (assignment_expression "puStack_380 = puVar25" (identifier "puStack_380") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "iStack_394 = *piVar21;" (assignment_expression "iStack_394 = *piVar21" (identifier "iStack_394") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" (identifier "pbVar24") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pbStack_3cc = unaff_s0;" (assignment_expression "pbStack_3cc = unaff_s0" (identifier "pbStack_3cc") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "pcStack_3a0 = pcVar29;" (assignment_expression "pcStack_3a0 = pcVar29" (identifier "pcStack_3a0") (= "=") (identifier "pcVar29")) (; ";")) (expression_statement "pbStack_38c = unaff_s0;" (assignment_expression "pbStack_38c = unaff_s0" (identifier "pbStack_38c") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "pbStack_388 = unaff_s1;" (assignment_expression "pbStack_388 = unaff_s1" (identifier "pbStack_388") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "pbStack_384 = unaff_s2;" (assignment_expression "pbStack_384 = unaff_s2" (identifier "pbStack_384") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pcStack_37c = pcVar30;" (assignment_expression "pcStack_37c = pcVar30" (identifier "pcStack_37c") (= "=") (identifier "pcVar30")) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 1)" (( "(") (binary_expression "*(uint *)(param_1 + 0x124) & 1" (pointer_expression "*(uint *)(param_1 + 0x124)" (* "*") (cast_expression "(uint *)(param_1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }\n    pcVar29 = pcStack_3a0;\n    if (iStack_394 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_3a0 + -0x7b6c))();\n    pbStack_3cc = param_1;\n    unaff_s2 = pbVar13;\n  }" ({ "{") (if_statement "if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" (if "if") (parenthesized_expression "((*(uint *)(param_1 + 0x124) & 6) == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x124) & 6)" (( "(") (binary_expression "*(uint *)(param_1 + 0x124) & 6" (pointer_expression "*(uint *)(param_1 + 0x124)" (* "*") (cast_expression "(uint *)(param_1 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }\n    }" ({ "{") (if_statement "if (pbVar19 == &DAT_00000004) {\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" (if "if") (parenthesized_expression "(pbVar19 == &DAT_00000004)" (( "(") (binary_expression "pbVar19 == &DAT_00000004" (identifier "pbVar19") (== "==") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004"))) () ")")) (compound_statement "{\n        puVar25 = auStack_398;\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(param_1,0);\n        if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }\n      }" ({ "{") (expression_statement "puVar25 = auStack_398;" (assignment_expression "puVar25 = auStack_398" (identifier "puVar25") (= "=") (identifier "auStack_398")) (; ";")) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" (identifier "FUN_0002aef8") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar15 = FUN_0002b068(param_1,0);" (assignment_expression "iVar15 = FUN_0002b068(param_1,0)" (identifier "iVar15") (= "=") (call_expression "FUN_0002b068(param_1,0)" (identifier "FUN_0002b068") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pbVar19 = (byte *)FUN_0002acb0(puVar25);\n          FUN_00018078(param_1,param_1 + 0x398);\n          pbVar24 = param_1;\n          FUN_00015834(param_1,pbVar13);\n        }" ({ "{") (expression_statement "pbVar19 = (byte *)FUN_0002acb0(puVar25);" (assignment_expression "pbVar19 = (byte *)FUN_0002acb0(puVar25)" (identifier "pbVar19") (= "=") (cast_expression "(byte *)FUN_0002acb0(puVar25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002acb0(puVar25)" (identifier "FUN_0002acb0") (argument_list "(puVar25)" (( "(") (identifier "puVar25") () ")"))))) (; ";")) (expression_statement "FUN_00018078(param_1,param_1 + 0x398);" (call_expression "FUN_00018078(param_1,param_1 + 0x398)" (identifier "FUN_00018078") (argument_list "(param_1,param_1 + 0x398)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_1 + 0x398" (identifier "param_1") (+ "+") (number_literal "0x398")) () ")"))) (; ";")) (expression_statement "pbVar24 = param_1;" (assignment_expression "pbVar24 = param_1" (identifier "pbVar24") (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_00015834(param_1,pbVar13);" (call_expression "FUN_00015834(param_1,pbVar13)" (identifier "FUN_00015834") (argument_list "(param_1,pbVar13)" (( "(") (identifier "param_1") (, ",") (identifier "pbVar13") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" (else "else") (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);\n      }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3a0 + -0x7b54)" (( "(") (binary_expression "pcStack_3a0 + -0x7b54" (identifier "pcStack_3a0") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c)" (( "(") (identifier "param_1") (, ",") (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" (( "(") (binary_expression "pcStack_3a0 + -0x7fd4" (identifier "pcStack_3a0") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x69c")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" (else "else") (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);\n    }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_3a0 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_3a0 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_3a0 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3a0 + -0x7b54)" (( "(") (binary_expression "pcStack_3a0 + -0x7b54" (identifier "pcStack_3a0") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c)" (( "(") (identifier "param_1") (, ",") (binary_expression "*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3a0 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3a0 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3a0 + -0x7fd4)" (( "(") (binary_expression "pcStack_3a0 + -0x7fd4" (identifier "pcStack_3a0") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x68c")) () ")"))) (; ";")) (} "}")))) (expression_statement "pcVar29 = pcStack_3a0;" (assignment_expression "pcVar29 = pcStack_3a0" (identifier "pcVar29") (= "=") (identifier "pcStack_3a0")) (; ";")) (if_statement "if (iStack_394 == *piVar21) {\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_394 == *piVar21)" (( "(") (binary_expression "iStack_394 == *piVar21" (identifier "iStack_394") (== "==") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcStack_3a0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3a0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3a0 + -0x7b6c))" (( "(") (pointer_expression "**(code **)(pcStack_3a0 + -0x7b6c)" (* "*") (pointer_expression "*(code **)(pcStack_3a0 + -0x7b6c)" (* "*") (cast_expression "(code **)(pcStack_3a0 + -0x7b6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3a0 + -0x7b6c)" (( "(") (binary_expression "pcStack_3a0 + -0x7b6c" (identifier "pcStack_3a0") (+ "+") (number_literal "-0x7b6c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbStack_3cc = param_1;" (assignment_expression "pbStack_3cc = param_1" (identifier "pbStack_3cc") (= "=") (identifier "param_1")) (; ";")) (expression_statement "unaff_s2 = pbVar13;" (assignment_expression "unaff_s2 = pbVar13" (identifier "unaff_s2") (= "=") (identifier "pbVar13")) (; ";")) (} "}"))) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" (* "*") (cast_expression "(code **)(pcVar29 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + -0x7ad4)" (( "(") (binary_expression "pcVar29 + -0x7ad4" (identifier "pcVar29") (+ "+") (number_literal "-0x7ad4")) () ")"))))) (; ";")) (expression_statement "pcVar30 = FUN_0002c0dc;" (assignment_expression "pcVar30 = FUN_0002c0dc" (identifier "pcVar30") (= "=") (identifier "FUN_0002c0dc")) (; ";")) (expression_statement "puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (identifier "puVar14") (= "=") (cast_expression "(undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (( "(") (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcVar29 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + -0x7fd4)" (( "(") (binary_expression "pcVar29 + -0x7fd4" (identifier "pcVar29") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x6a4")) () ")")))) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar29 = pcVar28 + 0x2ef14;" (assignment_expression "pcVar29 = pcVar28 + 0x2ef14" (identifier "pcVar29") (= "=") (binary_expression "pcVar28 + 0x2ef14" (identifier "pcVar28") (+ "+") (number_literal "0x2ef14"))) (; ";")) (expression_statement "piVar22 = *(int **)(pcVar28 + 0x273e0);" (assignment_expression "piVar22 = *(int **)(pcVar28 + 0x273e0)" (identifier "piVar22") (= "=") (pointer_expression "*(int **)(pcVar28 + 0x273e0)" (* "*") (cast_expression "(int **)(pcVar28 + 0x273e0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x273e0)" (( "(") (binary_expression "pcVar28 + 0x273e0" (identifier "pcVar28") (+ "+") (number_literal "0x273e0")) () ")"))))) (; ";")) (expression_statement "iStack_3d4 = *piVar22;" (assignment_expression "iStack_3d4 = *piVar22" (identifier "iStack_3d4") (= "=") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) (; ";")) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" (identifier "pbVar13") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "pbStack_404 = pbStack_3cc;" (assignment_expression "pbStack_404 = pbStack_3cc" (identifier "pbStack_404") (= "=") (identifier "pbStack_3cc")) (; ";")) (expression_statement "pcStack_3e0 = pcVar29;" (assignment_expression "pcStack_3e0 = pcVar29" (identifier "pcStack_3e0") (= "=") (identifier "pcVar29")) (; ";")) (expression_statement "piStack_3c8 = piVar21;" (assignment_expression "piStack_3c8 = piVar21" (identifier "piStack_3c8") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "pbStack_3c4 = unaff_s2;" (assignment_expression "pbStack_3c4 = unaff_s2" (identifier "pbStack_3c4") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_3c0 = puVar25;" (assignment_expression "puStack_3c0 = puVar25" (identifier "puStack_3c0") (= "=") (identifier "puVar25")) (; ";")) (expression_statement "pbStack_3bc = param_2;" (assignment_expression "pbStack_3bc = param_2" (identifier "pbStack_3bc") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbStack_3b8 = param_3;" (assignment_expression "pbStack_3b8 = param_3" (identifier "pbStack_3b8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_3b4 = pcVar30;" (assignment_expression "pcStack_3b4 = pcVar30" (identifier "pcStack_3b4") (= "=") (identifier "pcVar30")) (; ";")) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }" (if "if") (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(pbVar24 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 1)" (( "(") (binary_expression "*(uint *)(pbVar24 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar24 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar24 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar24 + 0x124)" (( "(") (binary_expression "pbVar24 + 0x124" (identifier "pbVar24") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c230:\n    pcVar29 = pcStack_3e0;\n    if (iStack_3d4 == *piVar22) {\n      return;\n    }\n    (**(code **)(pcStack_3e0 + -0x7b6c))();\n    pbStack_404 = pbVar24;\n  }" ({ "{") (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" (if "if") (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 6) == 0)" (( "(") (binary_expression "(*(uint *)(pbVar24 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 6)" (( "(") (binary_expression "*(uint *)(pbVar24 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar24 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar24 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar24 + 0x124)" (( "(") (binary_expression "pbVar24 + 0x124" (identifier "pbVar24") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }\n    }" ({ "{") (if_statement "if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" (if "if") (parenthesized_expression "((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0))" (( "(") (binary_expression "(puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)" (parenthesized_expression "(puVar14 == (undefined1 *)0x0)" (( "(") (binary_expression "puVar14 == (undefined1 *)0x0" (identifier "puVar14") (== "==") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "((*(uint *)(puVar14 + 8) & 2) == 0)" (( "(") (binary_expression "(*(uint *)(puVar14 + 8) & 2) == 0" (parenthesized_expression "(*(uint *)(puVar14 + 8) & 2)" (( "(") (binary_expression "*(uint *)(puVar14 + 8) & 2" (pointer_expression "*(uint *)(puVar14 + 8)" (* "*") (cast_expression "(uint *)(puVar14 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar14 + 8)" (( "(") (binary_expression "puVar14 + 8" (identifier "puVar14") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        param_2 = (byte *)0x3;\n        if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }\n        pbStack_3a8 = pbVar19;\n        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);\n        pbVar19 = pbStack_3a8;\n        FUN_0002b068(pbVar24,pbStack_3a8);\n        unaff_s2 = pbVar23;\n      }" ({ "{") (expression_statement "param_2 = (byte *)0x3;" (assignment_expression "param_2 = (byte *)0x3" (identifier "param_2") (= "=") (cast_expression "(byte *)0x3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) (; ";")) (if_statement "if (pbVar24[0x1ff] == 3) {\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }\n        else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" (if "if") (parenthesized_expression "(pbVar24[0x1ff] == 3)" (( "(") (binary_expression "pbVar24[0x1ff] == 3" (subscript_expression "pbVar24[0x1ff]" (identifier "pbVar24") ([ "[") (number_literal "0x1ff") (] "]")) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          pbVar23 = (byte *)0x8;\n          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;\nLAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n        }" ({ "{") (expression_statement "pbVar23 = (byte *)0x8;" (assignment_expression "pbVar23 = (byte *)0x8" (identifier "pbVar23") (= "=") (cast_expression "(byte *)0x8" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x8"))) (; ";")) (if_statement "if (pbVar19 == (byte *)0x3) goto LAB_0002c168;" (if "if") (parenthesized_expression "(pbVar19 == (byte *)0x3)" (( "(") (binary_expression "pbVar19 == (byte *)0x3" (identifier "pbVar19") (== "==") (cast_expression "(byte *)0x3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3"))) () ")")) (goto_statement "goto LAB_0002c168;" (goto "goto") (statement_identifier "LAB_0002c168") (; ";"))) (labeled_statement "LAB_0002c268:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);" (statement_identifier "LAB_0002c268") (: ":") (expression_statement "iVar15 = *(int *)(pcVar28 + 0x26f40);" (assignment_expression "iVar15 = *(int *)(pcVar28 + 0x26f40)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcVar28 + 0x26f40)" (* "*") (cast_expression "(int *)(pcVar28 + 0x26f40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x26f40)" (( "(") (binary_expression "pcVar28 + 0x26f40" (identifier "pcVar28") (+ "+") (number_literal "0x26f40")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" (else "else") (compound_statement "{\n          param_2 = (byte *)(uint)pbVar24[0x203];\n          pbVar23 = (byte *)(uint)pbVar24[0x200];\n          if (param_2 != pbVar19) goto LAB_0002c268;\nLAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);\n          if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }\n        }" ({ "{") (expression_statement "param_2 = (byte *)(uint)pbVar24[0x203];" (assignment_expression "param_2 = (byte *)(uint)pbVar24[0x203]" (identifier "param_2") (= "=") (cast_expression "(byte *)(uint)pbVar24[0x203]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)pbVar24[0x203]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar24[0x203]" (identifier "pbVar24") ([ "[") (number_literal "0x203") (] "]"))))) (; ";")) (expression_statement "pbVar23 = (byte *)(uint)pbVar24[0x200];" (assignment_expression "pbVar23 = (byte *)(uint)pbVar24[0x200]" (identifier "pbVar23") (= "=") (cast_expression "(byte *)(uint)pbVar24[0x200]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)pbVar24[0x200]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar24[0x200]" (identifier "pbVar24") ([ "[") (number_literal "0x200") (] "]"))))) (; ";")) (if_statement "if (param_2 != pbVar19) goto LAB_0002c268;" (if "if") (parenthesized_expression "(param_2 != pbVar19)" (( "(") (binary_expression "param_2 != pbVar19" (identifier "param_2") (!= "!=") (identifier "pbVar19")) () ")")) (goto_statement "goto LAB_0002c268;" (goto "goto") (statement_identifier "LAB_0002c268") (; ";"))) (labeled_statement "LAB_0002c168:\n          iVar15 = *(int *)(pcVar28 + 0x26f40);" (statement_identifier "LAB_0002c168") (: ":") (expression_statement "iVar15 = *(int *)(pcVar28 + 0x26f40);" (assignment_expression "iVar15 = *(int *)(pcVar28 + 0x26f40)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcVar28 + 0x26f40)" (* "*") (cast_expression "(int *)(pcVar28 + 0x26f40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x26f40)" (( "(") (binary_expression "pcVar28 + 0x26f40" (identifier "pcVar28") (+ "+") (number_literal "0x26f40")) () ")"))))) (; ";"))) (if_statement "if (param_2 < &DAT_00000005) {\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }" (if "if") (parenthesized_expression "(param_2 < &DAT_00000005)" (( "(") (binary_expression "param_2 < &DAT_00000005" (identifier "param_2") (< "<") (pointer_expression "&DAT_00000005" (& "&") (identifier "DAT_00000005"))) () ")")) (compound_statement "{\n            abStack_3d8[0] = (byte)pbVar23;\n            pbVar19 = param_2;\n            abStack_3d8[1] = abStack_3d8[0];\n            abStack_3d8[2] = abStack_3d8[0];\n            abStack_3d8[3] = abStack_3d8[0];\n            FUN_0002aef8(pbVar24,abStack_3d8);\n            iVar15 = FUN_0002b068(pbVar24,0);\n            unaff_s2 = pbVar23;\n            param_3 = abStack_3d8;\n            if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }\n            goto LAB_0002c230;\n          }" ({ "{") (expression_statement "abStack_3d8[0] = (byte)pbVar23;" (assignment_expression "abStack_3d8[0] = (byte)pbVar23" (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte)pbVar23" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "pbVar23"))) (; ";")) (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" (identifier "pbVar19") (= "=") (identifier "param_2")) (; ";")) (expression_statement "abStack_3d8[1] = abStack_3d8[0];" (assignment_expression "abStack_3d8[1] = abStack_3d8[0]" (subscript_expression "abStack_3d8[1]" (identifier "abStack_3d8") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "abStack_3d8[2] = abStack_3d8[0];" (assignment_expression "abStack_3d8[2] = abStack_3d8[0]" (subscript_expression "abStack_3d8[2]" (identifier "abStack_3d8") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "abStack_3d8[3] = abStack_3d8[0];" (assignment_expression "abStack_3d8[3] = abStack_3d8[0]" (subscript_expression "abStack_3d8[3]" (identifier "abStack_3d8") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "FUN_0002aef8(pbVar24,abStack_3d8);" (call_expression "FUN_0002aef8(pbVar24,abStack_3d8)" (identifier "FUN_0002aef8") (argument_list "(pbVar24,abStack_3d8)" (( "(") (identifier "pbVar24") (, ",") (identifier "abStack_3d8") () ")"))) (; ";")) (expression_statement "iVar15 = FUN_0002b068(pbVar24,0);" (assignment_expression "iVar15 = FUN_0002b068(pbVar24,0)" (identifier "iVar15") (= "=") (call_expression "FUN_0002b068(pbVar24,0)" (identifier "FUN_0002b068") (argument_list "(pbVar24,0)" (( "(") (identifier "pbVar24") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "unaff_s2 = pbVar23;" (assignment_expression "unaff_s2 = pbVar23" (identifier "unaff_s2") (= "=") (identifier "pbVar23")) (; ";")) (expression_statement "param_3 = abStack_3d8;" (assignment_expression "param_3 = abStack_3d8" (identifier "param_3") (= "=") (identifier "abStack_3d8")) (; ";")) (if_statement "if (iVar15 == 0) {\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }\n            }" ({ "{") (if_statement "if (param_2 == (byte *)0x0) {\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }\n              else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" (if "if") (parenthesized_expression "(param_2 == (byte *)0x0)" (( "(") (binary_expression "param_2 == (byte *)0x0" (identifier "param_2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }\n                pbVar19 = pbVar24 + 0x254;\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);\n              }" ({ "{") (labeled_statement "LAB_0002c1f4:\n                if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" (statement_identifier "LAB_0002c1f4") (: ":") (if_statement "if ((pbVar24[0x1ff] & 2) == 0) {\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }\n                else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" (if "if") (parenthesized_expression "((pbVar24[0x1ff] & 2) == 0)" (( "(") (binary_expression "(pbVar24[0x1ff] & 2) == 0" (parenthesized_expression "(pbVar24[0x1ff] & 2)" (( "(") (binary_expression "pbVar24[0x1ff] & 2" (subscript_expression "pbVar24[0x1ff]" (identifier "pbVar24") ([ "[") (number_literal "0x1ff") (] "]")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pbVar24[599] = abStack_3d8[0];\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[0];\n                  pbVar24[0x256] = abStack_3d8[0];\n                  pbVar24[600] = abStack_3d8[1];\n                }" ({ "{") (expression_statement "pbVar24[599] = abStack_3d8[0];" (assignment_expression "pbVar24[599] = abStack_3d8[0]" (subscript_expression "pbVar24[599]" (identifier "pbVar24") ([ "[") (number_literal "599") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar24[0x254] = abStack_3d8[0];" (assignment_expression "pbVar24[0x254] = abStack_3d8[0]" (subscript_expression "pbVar24[0x254]" (identifier "pbVar24") ([ "[") (number_literal "0x254") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar24[0x255] = abStack_3d8[0];" (assignment_expression "pbVar24[0x255] = abStack_3d8[0]" (subscript_expression "pbVar24[0x255]" (identifier "pbVar24") ([ "[") (number_literal "0x255") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar24[0x256] = abStack_3d8[0];" (assignment_expression "pbVar24[0x256] = abStack_3d8[0]" (subscript_expression "pbVar24[0x256]" (identifier "pbVar24") ([ "[") (number_literal "0x256") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar24[600] = abStack_3d8[1];" (assignment_expression "pbVar24[600] = abStack_3d8[1]" (subscript_expression "pbVar24[600]" (identifier "pbVar24") ([ "[") (number_literal "600") (] "]")) (= "=") (subscript_expression "abStack_3d8[1]" (identifier "abStack_3d8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" (else "else") (compound_statement "{\n                  pbVar24[0x254] = abStack_3d8[0];\n                  pbVar24[0x255] = abStack_3d8[1];\n                  pbVar24[0x256] = abStack_3d8[2];\n                  pbVar24[600] = abStack_3d8[3];\n                }" ({ "{") (expression_statement "pbVar24[0x254] = abStack_3d8[0];" (assignment_expression "pbVar24[0x254] = abStack_3d8[0]" (subscript_expression "pbVar24[0x254]" (identifier "pbVar24") ([ "[") (number_literal "0x254") (] "]")) (= "=") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar24[0x255] = abStack_3d8[1];" (assignment_expression "pbVar24[0x255] = abStack_3d8[1]" (subscript_expression "pbVar24[0x255]" (identifier "pbVar24") ([ "[") (number_literal "0x255") (] "]")) (= "=") (subscript_expression "abStack_3d8[1]" (identifier "abStack_3d8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pbVar24[0x256] = abStack_3d8[2];" (assignment_expression "pbVar24[0x256] = abStack_3d8[2]" (subscript_expression "pbVar24[0x256]" (identifier "pbVar24") ([ "[") (number_literal "0x256") (] "]")) (= "=") (subscript_expression "abStack_3d8[2]" (identifier "abStack_3d8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pbVar24[600] = abStack_3d8[3];" (assignment_expression "pbVar24[600] = abStack_3d8[3]" (subscript_expression "pbVar24[600]" (identifier "pbVar24") ([ "[") (number_literal "600") (] "]")) (= "=") (subscript_expression "abStack_3d8[3]" (identifier "abStack_3d8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}"))))) (expression_statement "pbVar19 = pbVar24 + 0x254;" (assignment_expression "pbVar19 = pbVar24 + 0x254" (identifier "pbVar19") (= "=") (binary_expression "pbVar24 + 0x254" (identifier "pbVar24") (+ "+") (number_literal "0x254"))) (; ";")) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" (identifier "pbVar13") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b38))" (( "(") (pointer_expression "**(code **)(pcStack_3e0 + -0x7b38)" (* "*") (pointer_expression "*(code **)(pcStack_3e0 + -0x7b38)" (* "*") (cast_expression "(code **)(pcStack_3e0 + -0x7b38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7b38)" (( "(") (binary_expression "pcStack_3e0 + -0x7b38" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7b38")) () ")"))))) () ")")) (argument_list "(pbVar24,puVar14)" (( "(") (identifier "pbVar24") (, ",") (identifier "puVar14") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" (else "else") (compound_statement "{\n                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }\n                pbVar13 = pbVar24;\n                (**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);\n              }" ({ "{") (if_statement "if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }" (if "if") (parenthesized_expression "(((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23))" (( "(") (binary_expression "((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&\n                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)" (parenthesized_expression "((byte *)(uint)abStack_3d8[0] != (byte *)0x0)" (( "(") (binary_expression "(byte *)(uint)abStack_3d8[0] != (byte *)0x0" (cast_expression "(byte *)(uint)abStack_3d8[0]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)abStack_3d8[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]")))) (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)" (( "(") (comma_expression "pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23" (assignment_expression "pbVar13 = abStack_3d8" (identifier "pbVar13") (= "=") (identifier "abStack_3d8")) (, ",") (binary_expression "(byte *)(uint)abStack_3d8[0] <= pbVar23" (cast_expression "(byte *)(uint)abStack_3d8[0]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)abStack_3d8[0]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "abStack_3d8[0]" (identifier "abStack_3d8") ([ "[") (number_literal "0") (] "]")))) (<= "<=") (identifier "pbVar23"))) () ")"))) () ")")) (compound_statement "{\n                  param_2 = abStack_3d8 + (int)param_2;\n                  do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));\n                }" ({ "{") (expression_statement "param_2 = abStack_3d8 + (int)param_2;" (assignment_expression "param_2 = abStack_3d8 + (int)param_2" (identifier "param_2") (= "=") (binary_expression "abStack_3d8 + (int)param_2" (identifier "abStack_3d8") (+ "+") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")))) (; ";")) (do_statement "do {\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23));" (do "do") (compound_statement "{\n                    pbVar13 = pbVar13 + 1;\n                    if (param_2 == pbVar13) goto LAB_0002c1f4;\n                  }" ({ "{") (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" (identifier "pbVar13") (= "=") (binary_expression "pbVar13 + 1" (identifier "pbVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_2 == pbVar13) goto LAB_0002c1f4;" (if "if") (parenthesized_expression "(param_2 == pbVar13)" (( "(") (binary_expression "param_2 == pbVar13" (identifier "param_2") (== "==") (identifier "pbVar13")) () ")")) (goto_statement "goto LAB_0002c1f4;" (goto "goto") (statement_identifier "LAB_0002c1f4") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23))" (( "(") (binary_expression "((byte *)(uint)*pbVar13 != (byte *)0x0) &&\n                          ((byte *)(uint)*pbVar13 <= pbVar23)" (parenthesized_expression "((byte *)(uint)*pbVar13 != (byte *)0x0)" (( "(") (binary_expression "(byte *)(uint)*pbVar13 != (byte *)0x0" (binary_expression "(byte *)(uint)*pbVar13" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar13")) (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((byte *)(uint)*pbVar13 <= pbVar23)" (( "(") (binary_expression "(byte *)(uint)*pbVar13 <= pbVar23" (binary_expression "(byte *)(uint)*pbVar13" (cast_expression "(byte *)(uint)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (identifier "pbVar13")) (<= "<=") (identifier "pbVar23")) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar13 = pbVar24;" (assignment_expression "pbVar13 = pbVar24" (identifier "pbVar13") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))\n                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7b54)" (( "(") (binary_expression "pcStack_3e0 + -0x7b54" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c)" (( "(") (identifier "pbVar24") (, ",") (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" (( "(") (binary_expression "pcStack_3e0 + -0x7fd4" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x69c")) () ")"))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_0002c230;" (goto "goto") (statement_identifier "LAB_0002c230") (; ";")) (} "}"))) (} "}")))) (expression_statement "pbStack_3a8 = pbVar19;" (assignment_expression "pbStack_3a8 = pbVar19" (identifier "pbStack_3a8") (= "=") (identifier "pbVar19")) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);" (call_expression "(**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c)" (parenthesized_expression "(**(code **)(pcVar28 + 0x273c0))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0x273c0)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0x273c0)" (* "*") (cast_expression "(code **)(pcVar28 + 0x273c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x273c0)" (( "(") (binary_expression "pcVar28 + 0x273c0" (identifier "pcVar28") (+ "+") (number_literal "0x273c0")) () ")"))))) () ")")) (argument_list "(pbVar24,iVar15 + 0x69c)" (( "(") (identifier "pbVar24") (, ",") (binary_expression "iVar15 + 0x69c" (identifier "iVar15") (+ "+") (number_literal "0x69c")) () ")"))) (; ";")) (expression_statement "pbVar19 = pbStack_3a8;" (assignment_expression "pbVar19 = pbStack_3a8" (identifier "pbVar19") (= "=") (identifier "pbStack_3a8")) (; ";")) (expression_statement "FUN_0002b068(pbVar24,pbStack_3a8);" (call_expression "FUN_0002b068(pbVar24,pbStack_3a8)" (identifier "FUN_0002b068") (argument_list "(pbVar24,pbStack_3a8)" (( "(") (identifier "pbVar24") (, ",") (identifier "pbStack_3a8") () ")"))) (; ";")) (expression_statement "unaff_s2 = pbVar23;" (assignment_expression "unaff_s2 = pbVar23" (identifier "unaff_s2") (= "=") (identifier "pbVar23")) (; ";")) (} "}")) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" (else "else") (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);\n      }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7b54)" (( "(") (binary_expression "pcStack_3e0 + -0x7b54" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18)" (( "(") (identifier "pbVar24") (, ",") (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" (( "(") (binary_expression "pcStack_3e0 + -0x7fd4" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x1a18")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" (else "else") (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);\n    }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_3e0 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_3e0 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_3e0 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7b54)" (( "(") (binary_expression "pcStack_3e0 + -0x7b54" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c)" (( "(") (identifier "pbVar24") (, ",") (binary_expression "*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_3e0 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_3e0 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7fd4)" (( "(") (binary_expression "pcStack_3e0 + -0x7fd4" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x68c")) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002c230:\n    pcVar29 = pcStack_3e0;" (statement_identifier "LAB_0002c230") (: ":") (expression_statement "pcVar29 = pcStack_3e0;" (assignment_expression "pcVar29 = pcStack_3e0" (identifier "pcVar29") (= "=") (identifier "pcStack_3e0")) (; ";"))) (if_statement "if (iStack_3d4 == *piVar22) {\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_3d4 == *piVar22)" (( "(") (binary_expression "iStack_3d4 == *piVar22" (identifier "iStack_3d4") (== "==") (pointer_expression "*piVar22" (* "*") (identifier "piVar22"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcStack_3e0 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_3e0 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_3e0 + -0x7b6c))" (( "(") (pointer_expression "**(code **)(pcStack_3e0 + -0x7b6c)" (* "*") (pointer_expression "*(code **)(pcStack_3e0 + -0x7b6c)" (* "*") (cast_expression "(code **)(pcStack_3e0 + -0x7b6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_3e0 + -0x7b6c)" (( "(") (binary_expression "pcStack_3e0 + -0x7b6c" (identifier "pcStack_3e0") (+ "+") (number_literal "-0x7b6c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbStack_404 = pbVar24;" (assignment_expression "pbStack_404 = pbVar24" (identifier "pbStack_404") (= "=") (identifier "pbVar24")) (; ";")) (} "}"))) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" (* "*") (cast_expression "(code **)(pcVar29 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + -0x7ad4)" (( "(") (binary_expression "pcVar29 + -0x7ad4" (identifier "pcVar29") (+ "+") (number_literal "-0x7ad4")) () ")"))))) (; ";")) (expression_statement "pcVar30 = FUN_0002c348;" (assignment_expression "pcVar30 = FUN_0002c348" (identifier "pcVar30") (= "=") (identifier "FUN_0002c348")) (; ";")) (expression_statement "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (( "(") (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcVar29 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + -0x7fd4)" (( "(") (binary_expression "pcVar29 + -0x7fd4" (identifier "pcVar29") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x6a4")) () ")")))) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar29 = pcVar28 + 0x2eca8;" (assignment_expression "pcVar29 = pcVar28 + 0x2eca8" (identifier "pcVar29") (= "=") (binary_expression "pcVar28 + 0x2eca8" (identifier "pcVar28") (+ "+") (number_literal "0x2eca8"))) (; ";")) (expression_statement "piVar21 = *(int **)(pcVar28 + 0x27174);" (assignment_expression "piVar21 = *(int **)(pcVar28 + 0x27174)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(pcVar28 + 0x27174)" (* "*") (cast_expression "(int **)(pcVar28 + 0x27174)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x27174)" (( "(") (binary_expression "pcVar28 + 0x27174" (identifier "pcVar28") (+ "+") (number_literal "0x27174")) () ")"))))) (; ";")) (expression_statement "iStack_40c = *piVar21;" (assignment_expression "iStack_40c = *piVar21" (identifier "iStack_40c") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" (identifier "pbVar24") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar23 = pbStack_404;" (assignment_expression "pbVar23 = pbStack_404" (identifier "pbVar23") (= "=") (identifier "pbStack_404")) (; ";")) (expression_statement "pcStack_458 = pcVar29;" (assignment_expression "pcStack_458 = pcVar29" (identifier "pcStack_458") (= "=") (identifier "pcVar29")) (; ";")) (expression_statement "piStack_400 = piVar22;" (assignment_expression "piStack_400 = piVar22" (identifier "piStack_400") (= "=") (identifier "piVar22")) (; ";")) (expression_statement "pbStack_3fc = unaff_s2;" (assignment_expression "pbStack_3fc = unaff_s2" (identifier "pbStack_3fc") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_3f8 = puVar14;" (assignment_expression "puStack_3f8 = puVar14" (identifier "puStack_3f8") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "pcStack_3f4 = pcVar30;" (assignment_expression "pcStack_3f4 = pcVar30" (identifier "pcStack_3f4") (= "=") (identifier "pcVar30")) (; ";")) (if_statement "if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }" (if "if") (parenthesized_expression "((*(uint *)(pbVar13 + 0x124) & 1) != 0)" (( "(") (binary_expression "(*(uint *)(pbVar13 + 0x124) & 1) != 0" (parenthesized_expression "(*(uint *)(pbVar13 + 0x124) & 1)" (( "(") (binary_expression "*(uint *)(pbVar13 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar13 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar13 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 0x124)" (( "(") (binary_expression "pbVar13 + 0x124" (identifier "pbVar13") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }\nLAB_0002c3d4:\n    pcVar29 = pcStack_458;\n    if (iStack_40c == *piVar21) {\n      return;\n    }\n    (**(code **)(pcStack_458 + -0x7b6c))();\n    pbVar23 = pbVar13;\n    unaff_s2 = pbVar16;\n  }" ({ "{") (if_statement "if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" (if "if") (parenthesized_expression "((*(uint *)(pbVar13 + 0x124) & 6) == 0)" (( "(") (binary_expression "(*(uint *)(pbVar13 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar13 + 0x124) & 6)" (( "(") (binary_expression "*(uint *)(pbVar13 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar13 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar13 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 0x124)" (( "(") (binary_expression "pbVar13 + 0x124" (identifier "pbVar13") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }\n    }" ({ "{") (if_statement "if (pbVar19 == (byte *)0x20) {\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }\n      else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" (if "if") (parenthesized_expression "(pbVar19 == (byte *)0x20)" (( "(") (binary_expression "pbVar19 == (byte *)0x20" (identifier "pbVar19") (== "==") (cast_expression "(byte *)0x20" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) () ")")) (compound_statement "{\n        FUN_0002aef8();\n        iVar15 = FUN_0002b068(pbVar13,0);\n        puVar14 = auStack_42c;\n        if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }\n      }" ({ "{") (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" (identifier "FUN_0002aef8") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar15 = FUN_0002b068(pbVar13,0);" (assignment_expression "iVar15 = FUN_0002b068(pbVar13,0)" (identifier "iVar15") (= "=") (call_expression "FUN_0002b068(pbVar13,0)" (identifier "FUN_0002b068") (argument_list "(pbVar13,0)" (( "(") (identifier "pbVar13") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "puVar14 = auStack_42c;" (assignment_expression "puVar14 = auStack_42c" (identifier "puVar14") (= "=") (identifier "auStack_42c")) (; ";")) (if_statement "if (iVar15 == 0) {\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar15 = FUN_0002acb0(auStack_42c);\n          iStack_434 = iVar15;\n          iVar8 = FUN_0002acb0(auStack_428);\n          iStack_430 = iVar8;\n          iVar9 = FUN_0002acb0(auStack_424);\n          iStack_44c = iVar9;\n          iVar4 = FUN_0002acb0(auStack_420);\n          iStack_448 = iVar4;\n          iVar5 = FUN_0002acb0(auStack_41c);\n          iStack_444 = iVar5;\n          iVar6 = FUN_0002acb0(auStack_418);\n          iStack_440 = iVar6;\n          iVar7 = FUN_0002acb0(auStack_414);\n          iStack_43c = iVar7;\n          iStack_438 = FUN_0002acb0(auStack_410);\n          if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }\n          pbVar24 = pbVar13;\n          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);\n        }" ({ "{") (expression_statement "iVar15 = FUN_0002acb0(auStack_42c);" (assignment_expression "iVar15 = FUN_0002acb0(auStack_42c)" (identifier "iVar15") (= "=") (call_expression "FUN_0002acb0(auStack_42c)" (identifier "FUN_0002acb0") (argument_list "(auStack_42c)" (( "(") (identifier "auStack_42c") () ")")))) (; ";")) (expression_statement "iStack_434 = iVar15;" (assignment_expression "iStack_434 = iVar15" (identifier "iStack_434") (= "=") (identifier "iVar15")) (; ";")) (expression_statement "iVar8 = FUN_0002acb0(auStack_428);" (assignment_expression "iVar8 = FUN_0002acb0(auStack_428)" (identifier "iVar8") (= "=") (call_expression "FUN_0002acb0(auStack_428)" (identifier "FUN_0002acb0") (argument_list "(auStack_428)" (( "(") (identifier "auStack_428") () ")")))) (; ";")) (expression_statement "iStack_430 = iVar8;" (assignment_expression "iStack_430 = iVar8" (identifier "iStack_430") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar9 = FUN_0002acb0(auStack_424);" (assignment_expression "iVar9 = FUN_0002acb0(auStack_424)" (identifier "iVar9") (= "=") (call_expression "FUN_0002acb0(auStack_424)" (identifier "FUN_0002acb0") (argument_list "(auStack_424)" (( "(") (identifier "auStack_424") () ")")))) (; ";")) (expression_statement "iStack_44c = iVar9;" (assignment_expression "iStack_44c = iVar9" (identifier "iStack_44c") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar4 = FUN_0002acb0(auStack_420);" (assignment_expression "iVar4 = FUN_0002acb0(auStack_420)" (identifier "iVar4") (= "=") (call_expression "FUN_0002acb0(auStack_420)" (identifier "FUN_0002acb0") (argument_list "(auStack_420)" (( "(") (identifier "auStack_420") () ")")))) (; ";")) (expression_statement "iStack_448 = iVar4;" (assignment_expression "iStack_448 = iVar4" (identifier "iStack_448") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "iVar5 = FUN_0002acb0(auStack_41c);" (assignment_expression "iVar5 = FUN_0002acb0(auStack_41c)" (identifier "iVar5") (= "=") (call_expression "FUN_0002acb0(auStack_41c)" (identifier "FUN_0002acb0") (argument_list "(auStack_41c)" (( "(") (identifier "auStack_41c") () ")")))) (; ";")) (expression_statement "iStack_444 = iVar5;" (assignment_expression "iStack_444 = iVar5" (identifier "iStack_444") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "iVar6 = FUN_0002acb0(auStack_418);" (assignment_expression "iVar6 = FUN_0002acb0(auStack_418)" (identifier "iVar6") (= "=") (call_expression "FUN_0002acb0(auStack_418)" (identifier "FUN_0002acb0") (argument_list "(auStack_418)" (( "(") (identifier "auStack_418") () ")")))) (; ";")) (expression_statement "iStack_440 = iVar6;" (assignment_expression "iStack_440 = iVar6" (identifier "iStack_440") (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar7 = FUN_0002acb0(auStack_414);" (assignment_expression "iVar7 = FUN_0002acb0(auStack_414)" (identifier "iVar7") (= "=") (call_expression "FUN_0002acb0(auStack_414)" (identifier "FUN_0002acb0") (argument_list "(auStack_414)" (( "(") (identifier "auStack_414") () ")")))) (; ";")) (expression_statement "iStack_43c = iVar7;" (assignment_expression "iStack_43c = iVar7" (identifier "iStack_43c") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iStack_438 = FUN_0002acb0(auStack_410);" (assignment_expression "iStack_438 = FUN_0002acb0(auStack_410)" (identifier "iStack_438") (= "=") (call_expression "FUN_0002acb0(auStack_410)" (identifier "FUN_0002acb0") (argument_list "(auStack_410)" (( "(") (identifier "auStack_410") () ")")))) (; ";")) (if_statement "if (iVar15 == -1) {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }\n          else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" (if "if") (parenthesized_expression "(iVar15 == -1)" (( "(") (binary_expression "iVar15 == -1" (identifier "iVar15") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n          }" ({ "{") (expression_statement "iVar15 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar15 = *(int *)(pcStack_458 + -0x7fd4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_458 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_458 + -0x7fd4)" (( "(") (binary_expression "pcStack_458 + -0x7fd4" (identifier "pcStack_458") (+ "+") (number_literal "-0x7fd4")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" (else "else") (compound_statement "{\n            iVar15 = *(int *)(pcStack_458 + -0x7fd4);\n            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }\n          }" ({ "{") (expression_statement "iVar15 = *(int *)(pcStack_458 + -0x7fd4);" (assignment_expression "iVar15 = *(int *)(pcStack_458 + -0x7fd4)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_458 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_458 + -0x7fd4)" (( "(") (binary_expression "pcStack_458 + -0x7fd4" (identifier "pcStack_458") (+ "+") (number_literal "-0x7fd4")) () ")"))))) (; ";")) (if_statement "if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" (if "if") (parenthesized_expression "(((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1))))" (( "(") (binary_expression "((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))" (parenthesized_expression "((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1))))" (( "(") (binary_expression "(((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&\n                ((iVar5 != -1 && (iVar6 != -1)))" (parenthesized_expression "(((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1))" (( "(") (binary_expression "((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)" (parenthesized_expression "((iVar8 != -1) && (iVar9 != -1))" (( "(") (binary_expression "(iVar8 != -1) && (iVar9 != -1)" (parenthesized_expression "(iVar8 != -1)" (( "(") (binary_expression "iVar8 != -1" (identifier "iVar8") (!= "!=") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 != -1)" (( "(") (binary_expression "iVar9 != -1" (identifier "iVar9") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 != -1)" (( "(") (binary_expression "iVar4 != -1" (identifier "iVar4") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar5 != -1 && (iVar6 != -1)))" (( "(") (parenthesized_expression "(iVar5 != -1 && (iVar6 != -1))" (( "(") (binary_expression "iVar5 != -1 && (iVar6 != -1)" (binary_expression "iVar5 != -1" (identifier "iVar5") (!= "!=") (number_literal "-1")) (&& "&&") (parenthesized_expression "(iVar6 != -1)" (( "(") (binary_expression "iVar6 != -1" (identifier "iVar6") (!= "!=") (number_literal "-1")) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar7 != -1 && (iStack_438 != -1)))" (( "(") (parenthesized_expression "(iVar7 != -1 && (iStack_438 != -1))" (( "(") (binary_expression "iVar7 != -1 && (iStack_438 != -1)" (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) (&& "&&") (parenthesized_expression "(iStack_438 != -1)" (( "(") (binary_expression "iStack_438 != -1" (identifier "iStack_438") (!= "!=") (number_literal "-1")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              uVar1 = *(ushort *)(pbVar13 + 0x3e2);\n              pbVar24 = pbVar13;\n              if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }\n              goto LAB_0002c3d4;\n            }" ({ "{") (expression_statement "uVar1 = *(ushort *)(pbVar13 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(pbVar13 + 0x3e2)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar13 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 0x3e2)" (( "(") (binary_expression "pbVar13 + 0x3e2" (identifier "pbVar13") (+ "+") (number_literal "0x3e2")) () ")"))))) (; ";")) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" (identifier "pbVar24") (= "=") (identifier "pbVar13")) (; ";")) (if_statement "if (-1 < (short)uVar1) {\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" (if "if") (parenthesized_expression "(-1 < (short)uVar1)" (( "(") (binary_expression "-1 < (short)uVar1" (number_literal "-1") (< "<") (cast_expression "(short)uVar1" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar1"))) () ")")) (compound_statement "{\n                if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }\n              }" ({ "{") (if_statement "if ((uVar1 & 0x10) == 0) {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }\n                else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" (if "if") (parenthesized_expression "((uVar1 & 0x10) == 0)" (( "(") (binary_expression "(uVar1 & 0x10) == 0" (parenthesized_expression "(uVar1 & 0x10)" (( "(") (binary_expression "uVar1 & 0x10" (identifier "uVar1") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;\n                  pbVar19 = (byte *)&iStack_44c;\n                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);\n                  FUN_00015834(pbVar13,pbVar16);\n                }" ({ "{") (expression_statement "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;" (assignment_expression "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10" (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar13 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 0x3e2)" (( "(") (binary_expression "pbVar13 + 0x3e2" (identifier "pbVar13") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "uVar1 | 0x10" (identifier "uVar1") (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "pbVar19 = (byte *)&iStack_44c;" (assignment_expression "pbVar19 = (byte *)&iStack_44c" (identifier "pbVar19") (= "=") (cast_expression "(byte *)&iStack_44c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&iStack_44c" (& "&") (identifier "iStack_44c")))) (; ";")) (expression_statement "FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);" (call_expression "FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1)" (identifier "FUN_00017e00") (argument_list "(pbVar13,pbVar13 + 0x398,pbVar19,1)" (( "(") (identifier "pbVar13") (, ",") (binary_expression "pbVar13 + 0x398" (identifier "pbVar13") (+ "+") (number_literal "0x398")) (, ",") (identifier "pbVar19") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00015834(pbVar13,pbVar16);" (call_expression "FUN_00015834(pbVar13,pbVar16)" (identifier "FUN_00015834") (argument_list "(pbVar13,pbVar16)" (( "(") (identifier "pbVar13") (, ",") (identifier "pbVar16") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" (else "else") (compound_statement "{\n                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;\n                  FUN_00015834(pbVar13,pbVar16);\n                  (**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);\n                }" ({ "{") (expression_statement "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(pbVar13 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar13 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 0x3e2)" (( "(") (binary_expression "pbVar13 + 0x3e2" (identifier "pbVar13") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "uVar1 | 0x8000" (identifier "uVar1") (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(pbVar13,pbVar16);" (call_expression "FUN_00015834(pbVar13,pbVar16)" (identifier "FUN_00015834") (argument_list "(pbVar13,pbVar16)" (( "(") (identifier "pbVar13") (, ",") (identifier "pbVar16") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))\n                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_458 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_458 + -0x7b54)" (( "(") (binary_expression "pcStack_458 + -0x7b54" (identifier "pcStack_458") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18)" (( "(") (identifier "pbVar13") (, ",") (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + -0x1a18" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_458 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_458 + -0x7fd4)" (( "(") (binary_expression "pcStack_458 + -0x7fd4" (identifier "pcStack_458") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "-0x1a18")) () ")"))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_0002c3d4;" (goto "goto") (statement_identifier "LAB_0002c3d4") (; ";")) (} "}"))) (} "}")))) (expression_statement "pbVar24 = pbVar13;" (assignment_expression "pbVar24 = pbVar13" (identifier "pbVar24") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_458 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_458 + -0x7b54)" (( "(") (binary_expression "pcStack_458 + -0x7b54" (identifier "pcStack_458") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(pbVar13,iVar15 + 0x70c)" (( "(") (identifier "pbVar13") (, ",") (binary_expression "iVar15 + 0x70c" (identifier "iVar15") (+ "+") (number_literal "0x70c")) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" (else "else") (compound_statement "{\n        FUN_0002b068();\n        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);\n      }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_458 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_458 + -0x7b54)" (( "(") (binary_expression "pcStack_458 + -0x7b54" (identifier "pcStack_458") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c)" (( "(") (identifier "pbVar13") (, ",") (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_458 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_458 + -0x7fd4)" (( "(") (binary_expression "pcStack_458 + -0x7fd4" (identifier "pcStack_458") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x69c")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" (else "else") (compound_statement "{\n      FUN_0002b068();\n      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);\n    }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_458 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_458 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_458 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_458 + -0x7b54)" (( "(") (binary_expression "pcStack_458 + -0x7b54" (identifier "pcStack_458") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c)" (( "(") (identifier "pbVar13") (, ",") (binary_expression "*(int *)(pcStack_458 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_458 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_458 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_458 + -0x7fd4)" (( "(") (binary_expression "pcStack_458 + -0x7fd4" (identifier "pcStack_458") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x68c")) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002c3d4:\n    pcVar29 = pcStack_458;" (statement_identifier "LAB_0002c3d4") (: ":") (expression_statement "pcVar29 = pcStack_458;" (assignment_expression "pcVar29 = pcStack_458" (identifier "pcVar29") (= "=") (identifier "pcStack_458")) (; ";"))) (if_statement "if (iStack_40c == *piVar21) {\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_40c == *piVar21)" (( "(") (binary_expression "iStack_40c == *piVar21" (identifier "iStack_40c") (== "==") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcStack_458 + -0x7b6c))();" (call_expression "(**(code **)(pcStack_458 + -0x7b6c))()" (parenthesized_expression "(**(code **)(pcStack_458 + -0x7b6c))" (( "(") (pointer_expression "**(code **)(pcStack_458 + -0x7b6c)" (* "*") (pointer_expression "*(code **)(pcStack_458 + -0x7b6c)" (* "*") (cast_expression "(code **)(pcStack_458 + -0x7b6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_458 + -0x7b6c)" (( "(") (binary_expression "pcStack_458 + -0x7b6c" (identifier "pcStack_458") (+ "+") (number_literal "-0x7b6c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar23 = pbVar13;" (assignment_expression "pbVar23 = pbVar13" (identifier "pbVar23") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "unaff_s2 = pbVar16;" (assignment_expression "unaff_s2 = pbVar16" (identifier "unaff_s2") (= "=") (identifier "pbVar16")) (; ";")) (} "}"))) (expression_statement "pcVar28 = *(code **)(pcVar29 + -0x7ad4);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + -0x7ad4)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar29 + -0x7ad4)" (* "*") (cast_expression "(code **)(pcVar29 + -0x7ad4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + -0x7ad4)" (( "(") (binary_expression "pcVar29 + -0x7ad4" (identifier "pcVar29") (+ "+") (number_literal "-0x7ad4")) () ")"))))) (; ";")) (expression_statement "pcVar30 = FUN_0002c5dc;" (assignment_expression "pcVar30 = FUN_0002c5dc" (identifier "pcVar30") (= "=") (identifier "FUN_0002c5dc")) (; ";")) (expression_statement "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);" (assignment_expression "pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + -0x7fd4) + 0x6a4)" (( "(") (binary_expression "*(int *)(pcVar29 + -0x7fd4) + 0x6a4" (pointer_expression "*(int *)(pcVar29 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcVar29 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + -0x7fd4)" (( "(") (binary_expression "pcVar29 + -0x7fd4" (identifier "pcVar29") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x6a4")) () ")")))) (; ";")) (expression_statement "(*pcVar28)();" (call_expression "(*pcVar28)()" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar29 = pcVar28 + 0x2ea14;" (assignment_expression "pcVar29 = pcVar28 + 0x2ea14" (identifier "pcVar29") (= "=") (binary_expression "pcVar28 + 0x2ea14" (identifier "pcVar28") (+ "+") (number_literal "0x2ea14"))) (; ";")) (expression_statement "pbVar13 = *(byte **)(pcVar28 + 0x26ee0);" (assignment_expression "pbVar13 = *(byte **)(pcVar28 + 0x26ee0)" (identifier "pbVar13") (= "=") (pointer_expression "*(byte **)(pcVar28 + 0x26ee0)" (* "*") (cast_expression "(byte **)(pcVar28 + 0x26ee0)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x26ee0)" (( "(") (binary_expression "pcVar28 + 0x26ee0" (identifier "pcVar28") (+ "+") (number_literal "0x26ee0")) () ")"))))) (; ";")) (expression_statement "iStack_47c = *(int *)pbVar13;" (assignment_expression "iStack_47c = *(int *)pbVar13" (identifier "iStack_47c") (= "=") (pointer_expression "*(int *)pbVar13" (* "*") (cast_expression "(int *)pbVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar13")))) (; ";")) (expression_statement "pcStack_488 = pcVar29;" (assignment_expression "pcStack_488 = pcVar29" (identifier "pcStack_488") (= "=") (identifier "pcVar29")) (; ";")) (expression_statement "pbStack_478 = pbVar23;" (assignment_expression "pbStack_478 = pbVar23" (identifier "pbStack_478") (= "=") (identifier "pbVar23")) (; ";")) (expression_statement "piStack_474 = piVar21;" (assignment_expression "piStack_474 = piVar21" (identifier "piStack_474") (= "=") (identifier "piVar21")) (; ";")) (expression_statement "pbStack_470 = unaff_s2;" (assignment_expression "pbStack_470 = unaff_s2" (identifier "pbStack_470") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pcStack_46c = pcVar30;" (assignment_expression "pcStack_46c = pcVar30" (identifier "pcStack_46c") (= "=") (identifier "pcVar30")) (; ";")) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }\n  else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(pbVar24 + 0x124) & 1) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 1)" (( "(") (binary_expression "*(uint *)(pbVar24 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar24 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar24 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar24 + 0x124)" (( "(") (binary_expression "pbVar24 + 0x124" (identifier "pbVar24") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(pcVar28 + 0x26f40))();\n    pbVar11 = pbVar24;\n  }" ({ "{") (expression_statement "pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar28 + 0x26a40) + 0x6a4)" (( "(") (binary_expression "*(int *)(pcVar28 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(pcVar28 + 0x26a40)" (* "*") (cast_expression "(int *)(pcVar28 + 0x26a40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar28 + 0x26a40)" (( "(") (binary_expression "pcVar28 + 0x26a40" (identifier "pcVar28") (+ "+") (number_literal "0x26a40")) () ")")))) (+ "+") (number_literal "0x6a4")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar28 + 0x26f40))();" (call_expression "(**(code **)(pcVar28 + 0x26f40))()" (parenthesized_expression "(**(code **)(pcVar28 + 0x26f40))" (( "(") (pointer_expression "**(code **)(pcVar28 + 0x26f40)" (* "*") (pointer_expression "*(code **)(pcVar28 + 0x26f40)" (* "*") (cast_expression "(code **)(pcVar28 + 0x26f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar28 + 0x26f40)" (( "(") (binary_expression "pcVar28 + 0x26f40" (identifier "pcVar28") (+ "+") (number_literal "0x26f40")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" (identifier "pbVar11") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (else_clause "else {\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    pbVar11 = pbVar24;\n    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }\n    pbVar23 = pbVar24;\n    unaff_s2 = pbVar16;\n    pcVar29 = pcStack_488;\n    if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }\n  }" ({ "{") (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" (identifier "pbVar11") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" (if "if") (parenthesized_expression "((*(uint *)(pbVar24 + 0x124) & 6) == 0)" (( "(") (binary_expression "(*(uint *)(pbVar24 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar24 + 0x124) & 6)" (( "(") (binary_expression "*(uint *)(pbVar24 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar24 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar24 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar24 + 0x124)" (( "(") (binary_expression "pbVar24 + 0x124" (identifier "pbVar24") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }\n    }" ({ "{") (if_statement "if (pbVar19 == (byte *)0x1) {\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" (if "if") (parenthesized_expression "(pbVar19 == (byte *)0x1)" (( "(") (binary_expression "pbVar19 == (byte *)0x1" (identifier "pbVar19") (== "==") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        FUN_0002aef8();\n        pbVar17 = (byte *)0x0;\n        iVar15 = FUN_0002b068();\n        if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" (identifier "FUN_0002aef8") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar17 = (byte *)0x0;" (assignment_expression "pbVar17 = (byte *)0x0" (identifier "pbVar17") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar15 = FUN_0002b068();" (assignment_expression "iVar15 = FUN_0002b068()" (identifier "iVar15") (= "=") (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar15 == 0) {\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar15 == 0)" (( "(") (binary_expression "iVar15 == 0" (identifier "iVar15") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar1 = *(ushort *)(pbVar24 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }\n        }" ({ "{") (expression_statement "uVar1 = *(ushort *)(pbVar24 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(pbVar24 + 0x3e2)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(pbVar24 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar24 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar24 + 0x3e2)" (( "(") (binary_expression "pbVar24 + 0x3e2" (identifier "pbVar24") (+ "+") (number_literal "0x3e2")) () ")"))))) (; ";")) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" (if "if") (parenthesized_expression "(-1 < (short)uVar1)" (( "(") (binary_expression "-1 < (short)uVar1" (number_literal "-1") (< "<") (cast_expression "(short)uVar1" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar1"))) () ")")) (compound_statement "{\n            if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }\n          }" ({ "{") (if_statement "if ((uVar1 & 4) == 0) {\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" (if "if") (parenthesized_expression "((uVar1 & 4) == 0)" (( "(") (binary_expression "(uVar1 & 4) == 0" (parenthesized_expression "(uVar1 & 4)" (( "(") (binary_expression "uVar1 & 4" (identifier "uVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar19 = (byte *)(uint)bStack_47d;\n              FUN_00018198(pbVar24,pbVar24 + 0x398);\n              pbVar11 = pbVar24;\n              pbVar17 = pbVar16;\n              FUN_00015834();\n            }" ({ "{") (expression_statement "pbVar19 = (byte *)(uint)bStack_47d;" (assignment_expression "pbVar19 = (byte *)(uint)bStack_47d" (identifier "pbVar19") (= "=") (cast_expression "(byte *)(uint)bStack_47d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)bStack_47d" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_47d")))) (; ";")) (expression_statement "FUN_00018198(pbVar24,pbVar24 + 0x398);" (call_expression "FUN_00018198(pbVar24,pbVar24 + 0x398)" (identifier "FUN_00018198") (argument_list "(pbVar24,pbVar24 + 0x398)" (( "(") (identifier "pbVar24") (, ",") (binary_expression "pbVar24 + 0x398" (identifier "pbVar24") (+ "+") (number_literal "0x398")) () ")"))) (; ";")) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" (identifier "pbVar11") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "pbVar17 = pbVar16;" (assignment_expression "pbVar17 = pbVar16" (identifier "pbVar17") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "FUN_00015834();" (call_expression "FUN_00015834()" (identifier "FUN_00015834") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" (else "else") (compound_statement "{\n              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(pbVar24,pbVar16);\n              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);\n              pbVar11 = pbVar24;\n              (**(code **)(pcStack_488 + -0x7b54))();\n            }" ({ "{") (expression_statement "*(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(pbVar24 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar24 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar24 + 0x3e2)" (( "(") (binary_expression "pbVar24 + 0x3e2" (identifier "pbVar24") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "uVar1 | 0x8000" (identifier "uVar1") (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(pbVar24,pbVar16);" (call_expression "FUN_00015834(pbVar24,pbVar16)" (identifier "FUN_00015834") (argument_list "(pbVar24,pbVar16)" (( "(") (identifier "pbVar24") (, ",") (identifier "pbVar16") () ")"))) (; ";")) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x71c)" (( "(") (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_488 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_488 + -0x7fd4)" (( "(") (binary_expression "pcStack_488 + -0x7fd4" (identifier "pcStack_488") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x71c")) () ")")))) (; ";")) (expression_statement "pbVar11 = pbVar24;" (assignment_expression "pbVar11 = pbVar24" (identifier "pbVar11") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_488 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_488 + -0x7b54)" (( "(") (binary_expression "pcStack_488 + -0x7b54" (identifier "pcStack_488") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" (else "else") (compound_statement "{\n        FUN_0002b068();\n        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);\n        (**(code **)(pcStack_488 + -0x7b54))();\n      }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x69c)" (( "(") (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_488 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_488 + -0x7fd4)" (( "(") (binary_expression "pcStack_488 + -0x7fd4" (identifier "pcStack_488") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x69c")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_488 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_488 + -0x7b54)" (( "(") (binary_expression "pcStack_488 + -0x7b54" (identifier "pcStack_488") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" (else "else") (compound_statement "{\n      FUN_0002b068();\n      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);\n      (**(code **)(pcStack_488 + -0x7b54))();\n    }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);" (assignment_expression "pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" (identifier "pbVar17") (= "=") (cast_expression "(byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_488 + -0x7fd4) + 0x68c)" (( "(") (binary_expression "*(int *)(pcStack_488 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(pcStack_488 + -0x7fd4)" (* "*") (cast_expression "(int *)(pcStack_488 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_488 + -0x7fd4)" (( "(") (binary_expression "pcStack_488 + -0x7fd4" (identifier "pcStack_488") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x68c")) () ")")))) (; ";")) (expression_statement "(**(code **)(pcStack_488 + -0x7b54))();" (call_expression "(**(code **)(pcStack_488 + -0x7b54))()" (parenthesized_expression "(**(code **)(pcStack_488 + -0x7b54))" (( "(") (pointer_expression "**(code **)(pcStack_488 + -0x7b54)" (* "*") (pointer_expression "*(code **)(pcStack_488 + -0x7b54)" (* "*") (cast_expression "(code **)(pcStack_488 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_488 + -0x7b54)" (( "(") (binary_expression "pcStack_488 + -0x7b54" (identifier "pcStack_488") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "pbVar23 = pbVar24;" (assignment_expression "pbVar23 = pbVar24" (identifier "pbVar23") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "unaff_s2 = pbVar16;" (assignment_expression "unaff_s2 = pbVar16" (identifier "unaff_s2") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "pcVar29 = pcStack_488;" (assignment_expression "pcVar29 = pcStack_488" (identifier "pcVar29") (= "=") (identifier "pcStack_488")) (; ";")) (if_statement "if (iStack_47c == *(int *)pbVar13) {\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_47c == *(int *)pbVar13)" (( "(") (binary_expression "iStack_47c == *(int *)pbVar13" (identifier "iStack_47c") (== "==") (pointer_expression "*(int *)pbVar13" (* "*") (cast_expression "(int *)pbVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar13")))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar29 = *(code **)(pcVar29 + -0x7b6c);" (assignment_expression "pcVar29 = *(code **)(pcVar29 + -0x7b6c)" (identifier "pcVar29") (= "=") (pointer_expression "*(code **)(pcVar29 + -0x7b6c)" (* "*") (cast_expression "(code **)(pcVar29 + -0x7b6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + -0x7b6c)" (( "(") (binary_expression "pcVar29 + -0x7b6c" (identifier "pcVar29") (+ "+") (number_literal "-0x7b6c")) () ")"))))) (; ";")) (expression_statement "pcVar28 = FUN_0002c770;" (assignment_expression "pcVar28 = FUN_0002c770" (identifier "pcVar28") (= "=") (identifier "FUN_0002c770")) (; ";")) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" (( "(") (pointer_expression "*pcVar29" (* "*") (identifier "pcVar29")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar21 = *(int **)(pcVar29 + 0x26d4c);" (assignment_expression "piVar21 = *(int **)(pcVar29 + 0x26d4c)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(pcVar29 + 0x26d4c)" (* "*") (cast_expression "(int **)(pcVar29 + 0x26d4c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26d4c)" (( "(") (binary_expression "pcVar29 + 0x26d4c" (identifier "pcVar29") (+ "+") (number_literal "0x26d4c")) () ")"))))) (; ";")) (expression_statement "pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);" (assignment_expression "pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)(*(uint *)(pbVar11 + 0x124) & 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pbVar11 + 0x124) & 1)" (( "(") (binary_expression "*(uint *)(pbVar11 + 0x124) & 1" (pointer_expression "*(uint *)(pbVar11 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar11 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x124)" (( "(") (binary_expression "pbVar11 + 0x124" (identifier "pbVar11") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iStack_4c4 = *piVar21;" (assignment_expression "iStack_4c4 = *piVar21" (identifier "iStack_4c4") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "pbVar24 = unaff_s2;" (assignment_expression "pbVar24 = unaff_s2" (identifier "pbVar24") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pbStack_4c0 = pbVar23;" (assignment_expression "pbStack_4c0 = pbVar23" (identifier "pbStack_4c0") (= "=") (identifier "pbVar23")) (; ";")) (expression_statement "pbStack_4bc = pbVar13;" (assignment_expression "pbStack_4bc = pbVar13" (identifier "pbStack_4bc") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbStack_4b8 = unaff_s2;" (assignment_expression "pbStack_4b8 = unaff_s2" (identifier "pbStack_4b8") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_4b4 = puVar14;" (assignment_expression "puStack_4b4 = puVar14" (identifier "puStack_4b4") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "pbStack_4b0 = param_2;" (assignment_expression "pbStack_4b0 = param_2" (identifier "pbStack_4b0") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbStack_4ac = param_3;" (assignment_expression "pbStack_4ac = param_3" (identifier "pbStack_4ac") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pbStack_4a8 = unaff_s6;" (assignment_expression "pbStack_4a8 = unaff_s6" (identifier "pbStack_4a8") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "pbStack_4a4 = unaff_s7;" (assignment_expression "pbStack_4a4 = unaff_s7" (identifier "pbStack_4a4") (= "=") (identifier "unaff_s7")) (; ";")) (expression_statement "pbStack_4a0 = unaff_s8;" (assignment_expression "pbStack_4a0 = unaff_s8" (identifier "pbStack_4a0") (= "=") (identifier "unaff_s8")) (; ";")) (expression_statement "pcStack_49c = pcVar28;" (assignment_expression "pcStack_49c = pcVar28" (identifier "pcStack_49c") (= "=") (identifier "pcVar28")) (; ";")) (expression_statement "apbStack_490[0] = pbVar19;" (assignment_expression "apbStack_490[0] = pbVar19" (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "pbVar19")) (; ";")) (if_statement "if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;" (if "if") (parenthesized_expression "(pbVar16 == (byte *)0x0)" (( "(") (binary_expression "pbVar16 == (byte *)0x0" (identifier "pbVar16") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002cd34;" (goto "goto") (statement_identifier "LAB_0002cd34") (; ";"))) (if_statement "if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" (if "if") (parenthesized_expression "((*(uint *)(pbVar11 + 0x124) & 6) == 0)" (( "(") (binary_expression "(*(uint *)(pbVar11 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(pbVar11 + 0x124) & 6)" (( "(") (binary_expression "*(uint *)(pbVar11 + 0x124) & 6" (pointer_expression "*(uint *)(pbVar11 + 0x124)" (* "*") (cast_expression "(uint *)(pbVar11 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x124)" (( "(") (binary_expression "pbVar11 + 0x124" (identifier "pbVar11") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);\n    unaff_s2 = pbVar24;\n  }" ({ "{") (if_statement "if ((byte *)0xd < pbVar19) {\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" (if "if") (parenthesized_expression "((byte *)0xd < pbVar19)" (( "(") (binary_expression "(byte *)0xd < pbVar19" (cast_expression "(byte *)0xd" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xd")) (< "<") (identifier "pbVar19")) () ")")) (compound_statement "{\n      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }\n      pbVar13 = (byte *)0x51;\n      if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }\n      pbVar24 = abStack_99c;\n      pbVar19 = pbVar13;\n      FUN_0002aef8();\n      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;\n      if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" ({ "{") (if_statement "if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" (if "if") (parenthesized_expression "((short)*(ushort *)(pbVar11 + 0x3e2) < 0)" (( "(") (binary_expression "(short)*(ushort *)(pbVar11 + 0x3e2) < 0" (cast_expression "(short)*(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")"))))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0002c8bc;" (goto "goto") (statement_identifier "LAB_0002c8bc") (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }" (if "if") (parenthesized_expression "((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0)" (( "(") (binary_expression "(*(ushort *)(pbVar11 + 0x3e2) & 4) != 0" (parenthesized_expression "(*(ushort *)(pbVar11 + 0x3e2) & 4)" (( "(") (binary_expression "*(ushort *)(pbVar11 + 0x3e2) & 4" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);\n        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n        FUN_00015834(pbVar11,pbVar17);\n        goto LAB_0002c934;\n      }" ({ "{") (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x71c)" (( "(") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x71c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x71c")) () ")")))) (; ";")) (labeled_statement "LAB_0002c900:\n        FUN_0002b068(pbVar11,apbStack_490[0]);" (statement_identifier "LAB_0002c900") (: ":") (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" (identifier "FUN_0002b068") (argument_list "(pbVar11,apbStack_490[0])" (( "(") (identifier "pbVar11") (, ",") (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";"))) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" (identifier "FUN_00015834") (argument_list "(pbVar11,pbVar17)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar17") () ")"))) (; ";")) (goto_statement "goto LAB_0002c934;" (goto "goto") (statement_identifier "LAB_0002c934") (; ";")) (} "}"))) (expression_statement "pbVar13 = (byte *)0x51;" (assignment_expression "pbVar13 = (byte *)0x51" (identifier "pbVar13") (= "=") (cast_expression "(byte *)0x51" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x51"))) (; ";")) (if_statement "if (pbVar19 < (byte *)0x51) {\n        pbVar13 = pbVar19;\n      }" (if "if") (parenthesized_expression "(pbVar19 < (byte *)0x51)" (( "(") (binary_expression "pbVar19 < (byte *)0x51" (identifier "pbVar19") (< "<") (cast_expression "(byte *)0x51" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x51"))) () ")")) (compound_statement "{\n        pbVar13 = pbVar19;\n      }" ({ "{") (expression_statement "pbVar13 = pbVar19;" (assignment_expression "pbVar13 = pbVar19" (identifier "pbVar13") (= "=") (identifier "pbVar19")) (; ";")) (} "}"))) (expression_statement "pbVar24 = abStack_99c;" (assignment_expression "pbVar24 = abStack_99c" (identifier "pbVar24") (= "=") (identifier "abStack_99c")) (; ";")) (expression_statement "pbVar19 = pbVar13;" (assignment_expression "pbVar19 = pbVar13" (identifier "pbVar19") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" (identifier "FUN_0002aef8") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;" (assignment_expression "apbStack_490[0] = apbStack_490[0] + -(int)pbVar13" (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "apbStack_490[0] + -(int)pbVar13" (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]")) (+ "+") (unary_expression "-(int)pbVar13" (- "-") (cast_expression "(int)pbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar13"))))) (; ";")) (if_statement "if ((byte *)0xa < apbStack_490[0]) {\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" (if "if") (parenthesized_expression "((byte *)0xa < apbStack_490[0])" (( "(") (binary_expression "(byte *)0xa < apbStack_490[0]" (cast_expression "(byte *)0xa" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa")) (< "<") (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n        pbVar23 = abStack_99c;\n        if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" ({ "{") (expression_statement "pbVar23 = abStack_99c;" (assignment_expression "pbVar23 = abStack_99c" (identifier "pbVar23") (= "=") (identifier "abStack_99c")) (; ";")) (if_statement "if (abStack_99c[0] == 0) {\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" (if "if") (parenthesized_expression "(abStack_99c[0] == 0)" (( "(") (binary_expression "abStack_99c[0] == 0" (subscript_expression "abStack_99c[0]" (identifier "abStack_99c") ([ "[") (number_literal "0") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);\n        }" ({ "{") (labeled_statement "LAB_0002c974:\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);" (statement_identifier "LAB_0002c974") (: ":") (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x748)" (( "(") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x748" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x748")) () ")")))) (; ";"))) (} "}")) (else_clause "else {\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" (else "else") (compound_statement "{\n          do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);\n          unaff_s6 = pbVar26 + 2;\nLAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }\n          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);\n        }" ({ "{") (do_statement "do {\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          } while (pbVar13 != pbVar16);" (do "do") (compound_statement "{\n            pbVar26 = pbVar16;\n            pbVar23 = pbVar23 + 1;\n            unaff_s6 = pbVar26 + 1;\n            pbVar16 = pbVar26;\n            if (*pbVar23 == 0) goto LAB_0002c86c;\n            pbVar16 = pbVar26 + 1;\n            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;\n          }" ({ "{") (expression_statement "pbVar26 = pbVar16;" (assignment_expression "pbVar26 = pbVar16" (identifier "pbVar26") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "pbVar23 = pbVar23 + 1;" (assignment_expression "pbVar23 = pbVar23 + 1" (identifier "pbVar23") (= "=") (binary_expression "pbVar23 + 1" (identifier "pbVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s6 = pbVar26 + 1;" (assignment_expression "unaff_s6 = pbVar26 + 1" (identifier "unaff_s6") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar16 = pbVar26;" (assignment_expression "pbVar16 = pbVar26" (identifier "pbVar16") (= "=") (identifier "pbVar26")) (; ";")) (if_statement "if (*pbVar23 == 0) goto LAB_0002c86c;" (if "if") (parenthesized_expression "(*pbVar23 == 0)" (( "(") (binary_expression "*pbVar23 == 0" (pointer_expression "*pbVar23" (* "*") (identifier "pbVar23")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002c86c;" (goto "goto") (statement_identifier "LAB_0002c86c") (; ";"))) (expression_statement "pbVar16 = pbVar26 + 1;" (assignment_expression "pbVar16 = pbVar26 + 1" (identifier "pbVar16") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (pbVar16 == (byte *)0x50) goto LAB_0002c974;" (if "if") (parenthesized_expression "(pbVar16 == (byte *)0x50)" (( "(") (binary_expression "pbVar16 == (byte *)0x50" (identifier "pbVar16") (== "==") (cast_expression "(byte *)0x50" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x50"))) () ")")) (goto_statement "goto LAB_0002c974;" (goto "goto") (statement_identifier "LAB_0002c974") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(pbVar13 != pbVar16)" (( "(") (binary_expression "pbVar13 != pbVar16" (identifier "pbVar13") (!= "!=") (identifier "pbVar16")) () ")")) (; ";")) (expression_statement "unaff_s6 = pbVar26 + 2;" (assignment_expression "unaff_s6 = pbVar26 + 2" (identifier "unaff_s6") (= "=") (binary_expression "pbVar26 + 2" (identifier "pbVar26") (+ "+") (number_literal "2"))) (; ";")) (labeled_statement "LAB_0002c86c:\n          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" (statement_identifier "LAB_0002c86c") (: ":") (if_statement "if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" (if "if") (parenthesized_expression "((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0))" (( "(") (binary_expression "(unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)" (parenthesized_expression "(unaff_s6 < pbVar13)" (( "(") (binary_expression "unaff_s6 < pbVar13" (identifier "unaff_s6") (< "<") (identifier "pbVar13")) () ")")) (&& "&&") (parenthesized_expression "(abStack_99c[(int)unaff_s6] == 0)" (( "(") (binary_expression "abStack_99c[(int)unaff_s6] == 0" (subscript_expression "abStack_99c[(int)unaff_s6]" (identifier "abStack_99c") ([ "[") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6")) (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);\n            if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);\n            pbVar19 = pbVar16 + 2;\n            pbVar16 = pbVar13 + (-2 - (int)pbVar16);\n            pbStack_9a0 = (byte *)0x84;\n            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;\n            *(byte **)(pbVar11 + 0x138) = pbVar16;\n            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);\n            pbVar11[0x130] = 0;\n            pbVar11[0x131] = 0;\n            pbVar11[0x132] = 0;\n            pbVar11[0x133] = 0;\n            pbVar19 = apbStack_490[0];\n            goto LAB_0002ca50;\n          }" ({ "{") (expression_statement "iVar15 = FUN_0002a9cc(pbVar11,0x69434350);" (assignment_expression "iVar15 = FUN_0002a9cc(pbVar11,0x69434350)" (identifier "iVar15") (= "=") (call_expression "FUN_0002a9cc(pbVar11,0x69434350)" (identifier "FUN_0002a9cc") (argument_list "(pbVar11,0x69434350)" (( "(") (identifier "pbVar11") (, ",") (number_literal "0x69434350") () ")")))) (; ";")) (if_statement "if (iVar15 != 0) {\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pbVar24 = *(byte **)(pbVar11 + 0x14c);\n              pbVar19 = apbStack_490[0];\n              goto LAB_0002ca50;\n            }" ({ "{") (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" (identifier "pbVar24") (= "=") (pointer_expression "*(byte **)(pbVar11 + 0x14c)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x14c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x14c)" (( "(") (binary_expression "pbVar11 + 0x14c" (identifier "pbVar11") (+ "+") (number_literal "0x14c")) () ")"))))) (; ";")) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" (identifier "pbVar19") (= "=") (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto LAB_0002ca50;" (goto "goto") (statement_identifier "LAB_0002ca50") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);" (call_expression "(**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26c24))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26c24)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26c24)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26c24)" (( "(") (binary_expression "pcVar29 + 0x26c24" (identifier "pcVar29") (+ "+") (number_literal "0x26c24")) () ")"))))) () ")")) (argument_list "(&bStack_948,0,0x84)" (( "(") (pointer_expression "&bStack_948" (& "&") (identifier "bStack_948")) (, ",") (number_literal "0") (, ",") (number_literal "0x84") () ")"))) (; ";")) (expression_statement "pbVar19 = pbVar16 + 2;" (assignment_expression "pbVar19 = pbVar16 + 2" (identifier "pbVar19") (= "=") (binary_expression "pbVar16 + 2" (identifier "pbVar16") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pbVar16 = pbVar13 + (-2 - (int)pbVar16);" (assignment_expression "pbVar16 = pbVar13 + (-2 - (int)pbVar16)" (identifier "pbVar16") (= "=") (binary_expression "pbVar13 + (-2 - (int)pbVar16)" (identifier "pbVar13") (+ "+") (parenthesized_expression "(-2 - (int)pbVar16)" (( "(") (binary_expression "-2 - (int)pbVar16" (number_literal "-2") (- "-") (cast_expression "(int)pbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar16"))) () ")")))) (; ";")) (expression_statement "pbStack_9a0 = (byte *)0x84;" (assignment_expression "pbStack_9a0 = (byte *)0x84" (identifier "pbStack_9a0") (= "=") (cast_expression "(byte *)0x84" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x84"))) (; ";")) (expression_statement "*(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;" (assignment_expression "*(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19" (pointer_expression "*(byte **)(pbVar11 + 0x134)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x134)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x134)" (( "(") (binary_expression "pbVar11 + 0x134" (identifier "pbVar11") (+ "+") (number_literal "0x134")) () ")")))) (= "=") (binary_expression "pbVar24 + (int)pbVar19" (identifier "pbVar24") (+ "+") (cast_expression "(int)pbVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar19")))) (; ";")) (expression_statement "*(byte **)(pbVar11 + 0x138) = pbVar16;" (assignment_expression "*(byte **)(pbVar11 + 0x138) = pbVar16" (pointer_expression "*(byte **)(pbVar11 + 0x138)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x138)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x138)" (( "(") (binary_expression "pbVar11 + 0x138" (identifier "pbVar11") (+ "+") (number_literal "0x138")) () ")")))) (= "=") (identifier "pbVar16")) (; ";")) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" (if "if") (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" (( "(") (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" (* "*") (cast_expression "(int *)(pbVar11 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x130)" (( "(") (binary_expression "pbVar11 + 0x130" (identifier "pbVar11") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (pointer_expression "*(int *)(pbVar11 + 0x1cc)" (* "*") (cast_expression "(int *)(pbVar11 + 0x1cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x1cc)" (( "(") (binary_expression "pbVar11 + 0x1cc" (identifier "pbVar11") (+ "+") (number_literal "0x1cc")) () ")"))))) () ")")) (compound_statement "{\n              iVar15 = *(int *)(pcVar29 + 0x26a74);\n              *(byte **)(pbVar11 + 0x140) = &bStack_948;\n              pbVar11[0x144] = 0;\n              pbVar11[0x145] = 0;\n              pbVar11[0x146] = 0;\n              pbVar11[0x147] = 0;\n              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n              if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }\n            }" ({ "{") (expression_statement "iVar15 = *(int *)(pcVar29 + 0x26a74);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x26a74)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcVar29 + 0x26a74)" (* "*") (cast_expression "(int *)(pcVar29 + 0x26a74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x26a74)" (( "(") (binary_expression "pcVar29 + 0x26a74" (identifier "pcVar29") (+ "+") (number_literal "0x26a74")) () ")"))))) (; ";")) (expression_statement "*(byte **)(pbVar11 + 0x140) = &bStack_948;" (assignment_expression "*(byte **)(pbVar11 + 0x140) = &bStack_948" (pointer_expression "*(byte **)(pbVar11 + 0x140)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x140)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x140)" (( "(") (binary_expression "pbVar11 + 0x140" (identifier "pbVar11") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (pointer_expression "&bStack_948" (& "&") (identifier "bStack_948"))) (; ";")) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" (identifier "pbVar11") ([ "[") (number_literal "0x144") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" (identifier "pbVar11") ([ "[") (number_literal "0x145") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" (identifier "pbVar11") ([ "[") (number_literal "0x146") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" (identifier "pbVar11") ([ "[") (number_literal "0x147") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);" (call_expression "FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" (identifier "FUN_0002b83c") (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" (( "(") (identifier "pbVar11") (, ",") (identifier "auStack_8c4") (, ",") (identifier "apbStack_490") (, ",") (pointer_expression "&pbStack_9a0" (& "&") (identifier "pbStack_9a0")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (pbStack_9a0 == (byte *)0x0) {\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }" (if "if") (parenthesized_expression "(pbStack_9a0 == (byte *)0x0)" (( "(") (binary_expression "pbStack_9a0 == (byte *)0x0" (identifier "pbStack_9a0") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pbStack_9b4 = pbVar11 + 0x398;\n                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);\n                pbVar19 = pbVar24;\n                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);\n                if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                pbVar11[0x130] = 0;\n                pbVar11[0x131] = 0;\n                pbVar11[0x132] = 0;\n                pbVar11[0x133] = 0;\n                FUN_0002b068(pbVar11,apbStack_490[0]);\n                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;\n                FUN_00015834(pbVar11,pbVar17);\n                unaff_s2 = pbVar24;\n                goto LAB_0002c8bc;\n              }" ({ "{") (expression_statement "pbStack_9b4 = pbVar11 + 0x398;" (assignment_expression "pbStack_9b4 = pbVar11 + 0x398" (identifier "pbStack_9b4") (= "=") (binary_expression "pbVar11 + 0x398" (identifier "pbVar11") (+ "+") (number_literal "0x398"))) (; ";")) (expression_statement "pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);" (assignment_expression "pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" (identifier "pbStack_9c0") (= "=") (cast_expression "(byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100)" (( "(") (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945 + (uint)bStack_946 * 0x100" (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +\n                                       (uint)bStack_945" (binary_expression "(uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000" (binary_expression "(uint)bStack_948 * 0x1000000" (cast_expression "(uint)bStack_948" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_948")) (* "*") (number_literal "0x1000000")) (+ "+") (binary_expression "(uint)bStack_947 * 0x10000" (cast_expression "(uint)bStack_947" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_947")) (* "*") (number_literal "0x10000"))) (+ "+") (cast_expression "(uint)bStack_945" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_945"))) (+ "+") (binary_expression "(uint)bStack_946 * 0x100" (cast_expression "(uint)bStack_946" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_946")) (* "*") (number_literal "0x100"))) () ")")))) (; ";")) (expression_statement "pbVar19 = pbVar24;" (assignment_expression "pbVar19 = pbVar24" (identifier "pbVar19") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);" (assignment_expression "iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" (identifier "iVar8") (= "=") (call_expression "FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" (identifier "FUN_000158a4") (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbStack_9b4") (, ",") (identifier "pbVar24") (, ",") (identifier "pbStack_9c0") () ")")))) (; ";")) (if_statement "if ((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)) {\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" (if "if") (parenthesized_expression "((iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0))" (( "(") (binary_expression "(iVar8 != 0) &&\n                   (pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0)" (( "(") (comma_expression "pbVar19 = pbVar24,\n                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0" (assignment_expression "pbVar19 = pbVar24" (identifier "pbVar19") (= "=") (identifier "pbVar24")) (, ",") (comma_expression "iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff]), iVar8 != 0" (assignment_expression "iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" (identifier "iVar8") (= "=") (call_expression "FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" (identifier "FUN_0001596c") (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,\n                                        pbVar11[0x1ff])" (( "(") (identifier "pbVar11") (, ",") (identifier "pbStack_9b4") (, ",") (identifier "pbVar24") (, ",") (identifier "pbStack_9c0") (, ",") (pointer_expression "&bStack_948" (& "&") (identifier "bStack_948")) (, ",") (subscript_expression "pbVar11[0x1ff]" (identifier "pbVar11") ([ "[") (number_literal "0x1ff") (] "]")) () ")")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n                  pbVar19 = (byte *)0x2;\n                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);\n                  if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  pbVar19 = pbVar16;\n                  pbVar13 = &bStack_948;\n                  do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);\n                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;\n                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;\n                  pbVar13 = (byte *)(iVar8 * 0xc);\n                  pbStack_9a0 = pbVar13;\n                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }\n                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;\n                  pbVar19 = pbVar24;\n                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);\n                  if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" ({ "{") (expression_statement "pbVar19 = (byte *)0x2;" (assignment_expression "pbVar19 = (byte *)0x2" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);" (assignment_expression "pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2)" (identifier "pbVar16") (= "=") (cast_expression "(byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002ab84(pbVar11,pbStack_9c0,2)" (identifier "FUN_0002ab84") (argument_list "(pbVar11,pbStack_9c0,2)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbStack_9c0") (, ",") (number_literal "2") () ")"))))) (; ";")) (if_statement "if (pbVar16 == (byte *)0x0) {\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }" (if "if") (parenthesized_expression "(pbVar16 == (byte *)0x0)" (( "(") (binary_expression "pbVar16 == (byte *)0x0" (identifier "pbVar16") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + -0x184);\n                    goto LAB_0002c900;\n                  }" ({ "{") (expression_statement "iVar15 = *(int *)(pcVar29 + 0x268ac);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x268ac)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")"))))) (; ";")) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" (identifier "pbVar11") ([ "[") (number_literal "0x130") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" (identifier "pbVar11") ([ "[") (number_literal "0x131") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" (identifier "pbVar11") ([ "[") (number_literal "0x132") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" (identifier "pbVar11") ([ "[") (number_literal "0x133") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar24 = (byte *)(iVar15 + -0x184);" (assignment_expression "pbVar24 = (byte *)(iVar15 + -0x184)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(iVar15 + -0x184)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x184)" (( "(") (binary_expression "iVar15 + -0x184" (identifier "iVar15") (+ "+") (number_literal "-0x184")) () ")")))) (; ";")) (goto_statement "goto LAB_0002c900;" (goto "goto") (statement_identifier "LAB_0002c900") (; ";")) (} "}"))) (expression_statement "pbVar19 = pbVar16;" (assignment_expression "pbVar19 = pbVar16" (identifier "pbVar19") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "pbVar13 = &bStack_948;" (assignment_expression "pbVar13 = &bStack_948" (identifier "pbVar13") (= "=") (pointer_expression "&bStack_948" (& "&") (identifier "bStack_948"))) (; ";")) (do_statement "do {\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  } while (pbVar23 != &bStack_8c8);" (do "do") (compound_statement "{\n                    pbVar23 = pbVar13 + 0x10;\n                    uVar20 = *(undefined4 *)(pbVar13 + 4);\n                    uVar18 = *(undefined4 *)(pbVar13 + 8);\n                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);\n                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;\n                    *(undefined4 *)(pbVar19 + 4) = uVar20;\n                    *(undefined4 *)(pbVar19 + 8) = uVar18;\n                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;\n                    pbVar19 = pbVar19 + 0x10;\n                    pbVar13 = pbVar23;\n                  }" ({ "{") (expression_statement "pbVar23 = pbVar13 + 0x10;" (assignment_expression "pbVar23 = pbVar13 + 0x10" (identifier "pbVar23") (= "=") (binary_expression "pbVar13 + 0x10" (identifier "pbVar13") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "uVar20 = *(undefined4 *)(pbVar13 + 4);" (assignment_expression "uVar20 = *(undefined4 *)(pbVar13 + 4)" (identifier "uVar20") (= "=") (pointer_expression "*(undefined4 *)(pbVar13 + 4)" (* "*") (cast_expression "(undefined4 *)(pbVar13 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 4)" (( "(") (binary_expression "pbVar13 + 4" (identifier "pbVar13") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar18 = *(undefined4 *)(pbVar13 + 8);" (assignment_expression "uVar18 = *(undefined4 *)(pbVar13 + 8)" (identifier "uVar18") (= "=") (pointer_expression "*(undefined4 *)(pbVar13 + 8)" (* "*") (cast_expression "(undefined4 *)(pbVar13 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 8)" (( "(") (binary_expression "pbVar13 + 8" (identifier "pbVar13") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar12 = *(undefined4 *)(pbVar13 + 0xc);" (assignment_expression "uVar12 = *(undefined4 *)(pbVar13 + 0xc)" (identifier "uVar12") (= "=") (pointer_expression "*(undefined4 *)(pbVar13 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pbVar13 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar13 + 0xc)" (( "(") (binary_expression "pbVar13 + 0xc" (identifier "pbVar13") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;" (assignment_expression "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar13" (pointer_expression "*(undefined4 *)pbVar19" (* "*") (cast_expression "(undefined4 *)pbVar19" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar19"))) (= "=") (pointer_expression "*(undefined4 *)pbVar13" (* "*") (cast_expression "(undefined4 *)pbVar13" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar13")))) (; ";")) (expression_statement "*(undefined4 *)(pbVar19 + 4) = uVar20;" (assignment_expression "*(undefined4 *)(pbVar19 + 4) = uVar20" (pointer_expression "*(undefined4 *)(pbVar19 + 4)" (* "*") (cast_expression "(undefined4 *)(pbVar19 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar19 + 4)" (( "(") (binary_expression "pbVar19 + 4" (identifier "pbVar19") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar20")) (; ";")) (expression_statement "*(undefined4 *)(pbVar19 + 8) = uVar18;" (assignment_expression "*(undefined4 *)(pbVar19 + 8) = uVar18" (pointer_expression "*(undefined4 *)(pbVar19 + 8)" (* "*") (cast_expression "(undefined4 *)(pbVar19 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar19 + 8)" (( "(") (binary_expression "pbVar19 + 8" (identifier "pbVar19") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar18")) (; ";")) (expression_statement "*(undefined4 *)(pbVar19 + 0xc) = uVar12;" (assignment_expression "*(undefined4 *)(pbVar19 + 0xc) = uVar12" (pointer_expression "*(undefined4 *)(pbVar19 + 0xc)" (* "*") (cast_expression "(undefined4 *)(pbVar19 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar19 + 0xc)" (( "(") (binary_expression "pbVar19 + 0xc" (identifier "pbVar19") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "pbVar19 = pbVar19 + 0x10;" (assignment_expression "pbVar19 = pbVar19 + 0x10" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 0x10" (identifier "pbVar19") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "pbVar13 = pbVar23;" (assignment_expression "pbVar13 = pbVar23" (identifier "pbVar13") (= "=") (identifier "pbVar23")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar23 != &bStack_8c8)" (( "(") (binary_expression "pbVar23 != &bStack_8c8" (identifier "pbVar23") (!= "!=") (pointer_expression "&bStack_8c8" (& "&") (identifier "bStack_8c8"))) () ")")) (; ";")) (expression_statement "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;" (assignment_expression "*(undefined4 *)pbVar19 = *(undefined4 *)pbVar23" (pointer_expression "*(undefined4 *)pbVar19" (* "*") (cast_expression "(undefined4 *)pbVar19" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar19"))) (= "=") (pointer_expression "*(undefined4 *)pbVar23" (* "*") (cast_expression "(undefined4 *)pbVar23" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar23")))) (; ";")) (expression_statement "iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;" (assignment_expression "iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100" (identifier "iVar8") (= "=") (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100" (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +\n                          (uint)bStack_8c5" (binary_expression "(uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000" (binary_expression "(uint)bStack_8c8 * 0x1000000" (cast_expression "(uint)bStack_8c8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_8c8")) (* "*") (number_literal "0x1000000")) (+ "+") (binary_expression "(uint)bStack_8c7 * 0x10000" (cast_expression "(uint)bStack_8c7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_8c7")) (* "*") (number_literal "0x10000"))) (+ "+") (cast_expression "(uint)bStack_8c5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_8c5"))) (+ "+") (binary_expression "(uint)bStack_8c6 * 0x100" (cast_expression "(uint)bStack_8c6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_8c6")) (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "pbVar13 = (byte *)(iVar8 * 0xc);" (assignment_expression "pbVar13 = (byte *)(iVar8 * 0xc)" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(iVar8 * 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 * 0xc)" (( "(") (binary_expression "iVar8 * 0xc" (identifier "iVar8") (* "*") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "pbStack_9a0 = pbVar13;" (assignment_expression "pbStack_9a0 = pbVar13" (identifier "pbStack_9a0") (= "=") (identifier "pbVar13")) (; ";")) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }\n                  else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" (if "if") (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" (( "(") (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" (* "*") (cast_expression "(int *)(pbVar11 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x130)" (( "(") (binary_expression "pbVar11 + 0x130" (identifier "pbVar11") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (pointer_expression "*(int *)(pbVar11 + 0x1cc)" (* "*") (cast_expression "(int *)(pbVar11 + 0x1cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x1cc)" (( "(") (binary_expression "pbVar11 + 0x1cc" (identifier "pbVar11") (+ "+") (number_literal "0x1cc")) () ")"))))) () ")")) (compound_statement "{\n                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;\n                    pbVar11[0x144] = 0;\n                    pbVar11[0x145] = 0;\n                    pbVar11[0x146] = 0;\n                    pbVar11[0x147] = 0;\n                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);\n                  }" ({ "{") (expression_statement "*(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;" (assignment_expression "*(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84" (pointer_expression "*(byte **)(pbVar11 + 0x140)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x140)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x140)" (( "(") (binary_expression "pbVar11 + 0x140" (identifier "pbVar11") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "pbVar16 + 0x84" (identifier "pbVar16") (+ "+") (number_literal "0x84"))) (; ";")) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" (identifier "pbVar11") ([ "[") (number_literal "0x144") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" (identifier "pbVar11") ([ "[") (number_literal "0x145") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" (identifier "pbVar11") ([ "[") (number_literal "0x146") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" (identifier "pbVar11") ([ "[") (number_literal "0x147") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);" (call_expression "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" (parenthesized_expression "(*(code *)(iVar15 + -0x47c4))" (( "(") (pointer_expression "*(code *)(iVar15 + -0x47c4)" (* "*") (cast_expression "(code *)(iVar15 + -0x47c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x47c4)" (( "(") (binary_expression "iVar15 + -0x47c4" (identifier "iVar15") (+ "+") (number_literal "-0x47c4")) () ")")))) () ")")) (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0)" (( "(") (identifier "pbVar11") (, ",") (identifier "auStack_8c4") (, ",") (identifier "apbStack_490") (, ",") (pointer_expression "&pbStack_9a0" (& "&") (identifier "pbStack_9a0")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" (else "else") (compound_statement "{\n                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                  }" ({ "{") (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" (* "*") (cast_expression "(int *)(pbVar11 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x14c)" (( "(") (binary_expression "pbVar11 + 0x14c" (identifier "pbVar11") (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x660"))) (; ";")) (} "}")))) (if_statement "if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;" (if "if") (parenthesized_expression "(pbStack_9a0 != (byte *)0x0)" (( "(") (binary_expression "pbStack_9a0 != (byte *)0x0" (identifier "pbStack_9a0") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002ca44;" (goto "goto") (statement_identifier "LAB_0002ca44") (; ";"))) (expression_statement "pbVar19 = pbVar24;" (assignment_expression "pbVar19 = pbVar24" (identifier "pbVar19") (= "=") (identifier "pbVar24")) (; ";")) (expression_statement "iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);" (assignment_expression "iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" (identifier "iVar9") (= "=") (call_expression "FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" (identifier "FUN_00015dd8") (argument_list "(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbStack_9b4") (, ",") (identifier "pbVar24") (, ",") (identifier "pbStack_9c0") (, ",") (identifier "pbVar16") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) {\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;\n                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }\n                    pbVar19 = apbStack_490[0];\n                    if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    pbVar13 = pbStack_9a0;\n                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar15 = *(int *)(pcVar29 + 0x268ac);\n                    pbVar11[0x130] = 0;\n                    pbVar11[0x131] = 0;\n                    pbVar11[0x132] = 0;\n                    pbVar11[0x133] = 0;\n                    pbVar24 = (byte *)(iVar15 + 0x674);\n                    goto LAB_0002c900;\n                  }" ({ "{") (expression_statement "pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;" (assignment_expression "pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84" (identifier "pbStack_9a0") (= "=") (binary_expression "pbStack_9c0 + iVar8 * -0xc + -0x84" (binary_expression "pbStack_9c0 + iVar8 * -0xc" (identifier "pbStack_9c0") (+ "+") (binary_expression "iVar8 * -0xc" (identifier "iVar8") (* "*") (number_literal "-0xc"))) (+ "+") (number_literal "-0x84"))) (; ";")) (if_statement "if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }\n                    else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" (if "if") (parenthesized_expression "(*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc))" (( "(") (binary_expression "*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)" (pointer_expression "*(int *)(pbVar11 + 0x130)" (* "*") (cast_expression "(int *)(pbVar11 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x130)" (( "(") (binary_expression "pbVar11 + 0x130" (identifier "pbVar11") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (pointer_expression "*(int *)(pbVar11 + 0x1cc)" (* "*") (cast_expression "(int *)(pbVar11 + 0x1cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x1cc)" (( "(") (binary_expression "pbVar11 + 0x1cc" (identifier "pbVar11") (+ "+") (number_literal "0x1cc")) () ")"))))) () ")")) (compound_statement "{\n                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);\n                      pbVar11[0x144] = 0;\n                      pbVar11[0x145] = 0;\n                      pbVar11[0x146] = 0;\n                      pbVar11[0x147] = 0;\n                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;\n                    }" ({ "{") (expression_statement "*(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);" (assignment_expression "*(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84)" (pointer_expression "*(byte **)(pbVar11 + 0x140)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x140)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x140)" (( "(") (binary_expression "pbVar11 + 0x140" (identifier "pbVar11") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "pbVar16 + (int)(pbVar13 + 0x84)" (identifier "pbVar16") (+ "+") (cast_expression "(int)(pbVar13 + 0x84)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pbVar13 + 0x84)" (( "(") (binary_expression "pbVar13 + 0x84" (identifier "pbVar13") (+ "+") (number_literal "0x84")) () ")"))))) (; ";")) (expression_statement "pbVar11[0x144] = 0;" (assignment_expression "pbVar11[0x144] = 0" (subscript_expression "pbVar11[0x144]" (identifier "pbVar11") ([ "[") (number_literal "0x144") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x145] = 0;" (assignment_expression "pbVar11[0x145] = 0" (subscript_expression "pbVar11[0x145]" (identifier "pbVar11") ([ "[") (number_literal "0x145") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x146] = 0;" (assignment_expression "pbVar11[0x146] = 0" (subscript_expression "pbVar11[0x146]" (identifier "pbVar11") ([ "[") (number_literal "0x146") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x147] = 0;" (assignment_expression "pbVar11[0x147] = 0" (subscript_expression "pbVar11[0x147]" (identifier "pbVar11") ([ "[") (number_literal "0x147") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)\n                      ;" (call_expression "(*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)" (parenthesized_expression "(*(code *)(iVar15 + -0x47c4))" (( "(") (pointer_expression "*(code *)(iVar15 + -0x47c4)" (* "*") (cast_expression "(code *)(iVar15 + -0x47c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + -0x47c4)" (( "(") (binary_expression "iVar15 + -0x47c4" (identifier "iVar15") (+ "+") (number_literal "-0x47c4")) () ")")))) () ")")) (argument_list "(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)" (( "(") (identifier "pbVar11") (, ",") (identifier "auStack_8c4") (, ",") (identifier "apbStack_490") (, ",") (pointer_expression "&pbStack_9a0" (& "&") (identifier "pbStack_9a0")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" (else "else") (compound_statement "{\n                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n                    }" ({ "{") (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" (* "*") (cast_expression "(int *)(pbVar11 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x14c)" (( "(") (binary_expression "pbVar11 + 0x14c" (identifier "pbVar11") (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x660"))) (; ";")) (} "}")))) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" (identifier "pbVar19") (= "=") (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (apbStack_490[0] == (byte *)0x0) {\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" (if "if") (parenthesized_expression "(apbStack_490[0] == (byte *)0x0)" (( "(") (binary_expression "apbStack_490[0] == (byte *)0x0" (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" ({ "{") (if_statement "if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;" (if "if") (parenthesized_expression "(pbStack_9a0 == (byte *)0x0)" (( "(") (binary_expression "pbStack_9a0 == (byte *)0x0" (identifier "pbStack_9a0") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002cd68;" (goto "goto") (statement_identifier "LAB_0002cd68") (; ";"))) (goto_statement "goto LAB_0002ce38;" (goto "goto") (statement_identifier "LAB_0002ce38") (; ";")) (} "}"))) (expression_statement "pbVar13 = pbStack_9a0;" (assignment_expression "pbVar13 = pbStack_9a0" (identifier "pbVar13") (= "=") (identifier "pbStack_9a0")) (; ";")) (if_statement "if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;" (if "if") (parenthesized_expression "(*(int *)(pbVar11 + 0x128) << 0xb < 0)" (( "(") (binary_expression "*(int *)(pbVar11 + 0x128) << 0xb < 0" (binary_expression "*(int *)(pbVar11 + 0x128) << 0xb" (pointer_expression "*(int *)(pbVar11 + 0x128)" (* "*") (cast_expression "(int *)(pbVar11 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x128)" (( "(") (binary_expression "pbVar11 + 0x128" (identifier "pbVar11") (+ "+") (number_literal "0x128")) () ")")))) (<< "<<") (number_literal "0xb")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cd44;" (goto "goto") (statement_identifier "LAB_0002cd44") (; ";"))) (expression_statement "iVar15 = *(int *)(pcVar29 + 0x268ac);" (assignment_expression "iVar15 = *(int *)(pcVar29 + 0x268ac)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")"))))) (; ";")) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" (identifier "pbVar11") ([ "[") (number_literal "0x130") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" (identifier "pbVar11") ([ "[") (number_literal "0x131") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" (identifier "pbVar11") ([ "[") (number_literal "0x132") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" (identifier "pbVar11") ([ "[") (number_literal "0x133") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar24 = (byte *)(iVar15 + 0x674);" (assignment_expression "pbVar24 = (byte *)(iVar15 + 0x674)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(iVar15 + 0x674)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0x674)" (( "(") (binary_expression "iVar15 + 0x674" (identifier "iVar15") (+ "+") (number_literal "0x674")) () ")")))) (; ";")) (goto_statement "goto LAB_0002c900;" (goto "goto") (statement_identifier "LAB_0002c900") (; ";")) (} "}"))) (} "}"))) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" (identifier "pbVar11") ([ "[") (number_literal "0x130") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" (identifier "pbVar11") ([ "[") (number_literal "0x131") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" (identifier "pbVar11") ([ "[") (number_literal "0x132") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" (identifier "pbVar11") ([ "[") (number_literal "0x133") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" (identifier "FUN_0002b068") (argument_list "(pbVar11,apbStack_490[0])" (( "(") (identifier "pbVar11") (, ",") (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" (identifier "FUN_00015834") (argument_list "(pbVar11,pbVar17)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar17") () ")"))) (; ";")) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" (identifier "unaff_s2") (= "=") (identifier "pbVar24")) (; ";")) (goto_statement "goto LAB_0002c8bc;" (goto "goto") (statement_identifier "LAB_0002c8bc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" (else "else") (compound_statement "{\n              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;\n            }" ({ "{") (expression_statement "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pbVar11 + 0x14c)" (* "*") (cast_expression "(int *)(pbVar11 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x14c)" (( "(") (binary_expression "pbVar11 + 0x14c" (identifier "pbVar11") (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x660"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002ca44:\n            pbVar24 = *(byte **)(pbVar11 + 0x14c);" (statement_identifier "LAB_0002ca44") (: ":") (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" (identifier "pbVar24") (= "=") (pointer_expression "*(byte **)(pbVar11 + 0x14c)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x14c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x14c)" (( "(") (binary_expression "pbVar11 + 0x14c" (identifier "pbVar11") (+ "+") (number_literal "0x14c")) () ")"))))) (; ";"))) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" (identifier "pbVar11") ([ "[") (number_literal "0x130") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" (identifier "pbVar11") ([ "[") (number_literal "0x131") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" (identifier "pbVar11") ([ "[") (number_literal "0x132") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" (identifier "pbVar11") ([ "[") (number_literal "0x133") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar19 = apbStack_490[0];" (assignment_expression "pbVar19 = apbStack_490[0]" (identifier "pbVar19") (= "=") (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto LAB_0002ca50;" (goto "goto") (statement_identifier "LAB_0002ca50") (; ";")) (} "}")))) (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + 0x730)" (( "(") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x730" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x730")) () ")")))) (; ";")) (} "}")))) (goto_statement "goto LAB_0002c900;" (goto "goto") (statement_identifier "LAB_0002c900") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);" (call_expression "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d2c))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26d2c)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26d2c)" (( "(") (binary_expression "pcVar29 + 0x26d2c" (identifier "pcVar29") (+ "+") (number_literal "0x26d2c")) () ")"))))) () ")")) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c)" (( "(") (identifier "pbVar11") (, ",") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x237c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x237c")) () ")"))) (; ";")) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" (identifier "unaff_s2") (= "=") (identifier "pbVar24")) (; ";")) (} "}")) (else_clause "else {\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" (else "else") (compound_statement "{\n    FUN_0002b068();\n    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);\n  }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);" (call_expression "(**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d2c))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26d2c)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26d2c)" (( "(") (binary_expression "pcVar29 + 0x26d2c" (identifier "pcVar29") (+ "+") (number_literal "0x26d2c")) () ")"))))) () ")")) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c)" (( "(") (identifier "pbVar11") (, ",") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x68c" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x68c")) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002c8bc:\n  while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" (statement_identifier "LAB_0002c8bc") (: ":") (while_statement "while( true ) {\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (iStack_4c4 == *piVar21) {\n      return;\n    }\n    (**(code **)(pcVar29 + 0x26d14))();\n    pbVar13 = pbVar17;\n    pbVar24 = unaff_s2;\n    unaff_s8 = pbVar11;\nLAB_0002cd34:\n    pbVar11 = unaff_s8;\n    pbVar17 = pbVar13;\n    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();\nLAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);\n    pbVar19 = pbVar16;\n    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));\n    if (pbVar17 != (byte *)0x0) break;\nLAB_0002ce24:\n    pbVar11[0x130] = 0;\n    pbVar11[0x131] = 0;\n    pbVar11[0x132] = 0;\n    pbVar11[0x133] = 0;\n    unaff_s2 = pbVar24;\n  }" ({ "{") (if_statement "if (iStack_4c4 == *piVar21) {\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_4c4 == *piVar21)" (( "(") (binary_expression "iStack_4c4 == *piVar21" (identifier "iStack_4c4") (== "==") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar29 + 0x26d14))();" (call_expression "(**(code **)(pcVar29 + 0x26d14))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d14))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26d14)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26d14)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26d14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26d14)" (( "(") (binary_expression "pcVar29 + 0x26d14" (identifier "pcVar29") (+ "+") (number_literal "0x26d14")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pbVar13 = pbVar17;" (assignment_expression "pbVar13 = pbVar17" (identifier "pbVar13") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "pbVar24 = unaff_s2;" (assignment_expression "pbVar24 = unaff_s2" (identifier "pbVar24") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "unaff_s8 = pbVar11;" (assignment_expression "unaff_s8 = pbVar11" (identifier "unaff_s8") (= "=") (identifier "pbVar11")) (; ";")) (labeled_statement "LAB_0002cd34:\n    pbVar11 = unaff_s8;" (statement_identifier "LAB_0002cd34") (: ":") (expression_statement "pbVar11 = unaff_s8;" (assignment_expression "pbVar11 = unaff_s8" (identifier "pbVar11") (= "=") (identifier "unaff_s8")) (; ";"))) (expression_statement "pbVar17 = pbVar13;" (assignment_expression "pbVar17 = pbVar13" (identifier "pbVar17") (= "=") (identifier "pbVar13")) (; ";")) (expression_statement "pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();" (assignment_expression "pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))()" (identifier "pbVar13") (= "=") (cast_expression "(byte *)(**(code **)(pcVar29 + 0x26dac))()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar29 + 0x26dac))()" (parenthesized_expression "(**(code **)(pcVar29 + 0x26dac))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26dac)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26dac)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26dac)" (( "(") (binary_expression "pcVar29 + 0x26dac" (identifier "pcVar29") (+ "+") (number_literal "0x26dac")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_0002cd44:\n    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;" (statement_identifier "LAB_0002cd44") (: ":") (if_statement "if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;" (if "if") (parenthesized_expression "(pbVar13 != (byte *)0x0)" (( "(") (binary_expression "pbVar13 != (byte *)0x0" (identifier "pbVar13") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002ce38;" (goto "goto") (statement_identifier "LAB_0002ce38") (; ";")))) (expression_statement "(**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);" (call_expression "(**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26bf8))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26bf8)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26bf8)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26bf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26bf8)" (( "(") (binary_expression "pcVar29 + 0x26bf8" (identifier "pcVar29") (+ "+") (number_literal "0x26bf8")) () ")"))))) () ")")) (argument_list "(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674)" (( "(") (identifier "pbVar11") (, ",") (binary_expression "*(int *)(pcVar29 + 0x268ac) + 0x674" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x674")) () ")"))) (; ";")) (labeled_statement "LAB_0002cd68:\n    FUN_0002b068(pbVar11,apbStack_490[0]);" (statement_identifier "LAB_0002cd68") (: ":") (expression_statement "FUN_0002b068(pbVar11,apbStack_490[0]);" (call_expression "FUN_0002b068(pbVar11,apbStack_490[0])" (identifier "FUN_0002b068") (argument_list "(pbVar11,apbStack_490[0])" (( "(") (identifier "pbVar11") (, ",") (subscript_expression "apbStack_490[0]" (identifier "apbStack_490") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";"))) (expression_statement "pbVar19 = pbVar16;" (assignment_expression "pbVar19 = pbVar16" (identifier "pbVar19") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));" (call_expression "FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164))" (identifier "FUN_0001839c") (argument_list "(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164))" (( "(") (identifier "pbVar11") (, ",") (identifier "pbStack_9b4") (, ",") (identifier "pbVar16") (, ",") (pointer_expression "*(undefined4 *)(pbVar11 + 0x164)" (* "*") (cast_expression "(undefined4 *)(pbVar11 + 0x164)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x164)" (( "(") (binary_expression "pbVar11 + 0x164" (identifier "pbVar11") (+ "+") (number_literal "0x164")) () ")")))) () ")"))) (; ";")) (if_statement "if (pbVar17 != (byte *)0x0) break;" (if "if") (parenthesized_expression "(pbVar17 != (byte *)0x0)" (( "(") (binary_expression "pbVar17 != (byte *)0x0" (identifier "pbVar17") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0002ce24:\n    pbVar11[0x130] = 0;" (statement_identifier "LAB_0002ce24") (: ":") (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" (identifier "pbVar11") ([ "[") (number_literal "0x130") (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" (identifier "pbVar11") ([ "[") (number_literal "0x131") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" (identifier "pbVar11") ([ "[") (number_literal "0x132") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" (identifier "pbVar11") ([ "[") (number_literal "0x133") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" (identifier "unaff_s2") (= "=") (identifier "pbVar24")) (; ";")) (} "}")))) (expression_statement "pbVar19 = (byte *)0x10;" (assignment_expression "pbVar19 = (byte *)0x10" (identifier "pbVar19") (= "=") (cast_expression "(byte *)0x10" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) (; ";")) (expression_statement "(**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);" (call_expression "(**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26bd0))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26bd0)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26bd0)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26bd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26bd0)" (( "(") (binary_expression "pcVar29 + 0x26bd0" (identifier "pcVar29") (+ "+") (number_literal "0x26bd0")) () ")"))))) () ")")) (argument_list "(pbVar11,pbVar17,0x10,0)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar17") (, ",") (number_literal "0x10") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar15 = FUN_0001c240(pbVar11,unaff_s6);" (assignment_expression "iVar15 = FUN_0001c240(pbVar11,unaff_s6)" (identifier "iVar15") (= "=") (call_expression "FUN_0001c240(pbVar11,unaff_s6)" (identifier "FUN_0001c240") (argument_list "(pbVar11,unaff_s6)" (( "(") (identifier "pbVar11") (, ",") (identifier "unaff_s6") () ")")))) (; ";")) (expression_statement "*(int *)(pbVar17 + 0x74) = iVar15;" (assignment_expression "*(int *)(pbVar17 + 0x74) = iVar15" (pointer_expression "*(int *)(pbVar17 + 0x74)" (* "*") (cast_expression "(int *)(pbVar17 + 0x74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 0x74)" (( "(") (binary_expression "pbVar17 + 0x74" (identifier "pbVar17") (+ "+") (number_literal "0x74")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (if_statement "if (iVar15 != 0) {\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }" (if "if") (parenthesized_expression "(iVar15 != 0)" (( "(") (binary_expression "iVar15 != 0" (identifier "iVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);\n    uVar10 = *(uint *)(pbVar17 + 0xf4);\n    uVar3 = *(uint *)(pbVar17 + 8);\n    *(byte **)(pbVar17 + 0x78) = pbVar16;\n    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;\n    pbVar11[0x374] = 0;\n    pbVar11[0x375] = 0;\n    pbVar11[0x376] = 0;\n    pbVar11[0x377] = 0;\n    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;\n    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;\n    pbVar19 = pbStack_9c0;\n    FUN_00015834(pbVar11,pbVar17);\n    goto LAB_0002ce24;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);" (call_expression "(**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar29 + 0x26d54))" (( "(") (pointer_expression "**(code **)(pcVar29 + 0x26d54)" (* "*") (pointer_expression "*(code **)(pcVar29 + 0x26d54)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26d54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26d54)" (( "(") (binary_expression "pcVar29 + 0x26d54" (identifier "pcVar29") (+ "+") (number_literal "0x26d54")) () ")"))))) () ")")) (argument_list "(iVar15,pbVar24,unaff_s6)" (( "(") (identifier "iVar15") (, ",") (identifier "pbVar24") (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "uVar10 = *(uint *)(pbVar17 + 0xf4);" (assignment_expression "uVar10 = *(uint *)(pbVar17 + 0xf4)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(pbVar17 + 0xf4)" (* "*") (cast_expression "(uint *)(pbVar17 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 0xf4)" (( "(") (binary_expression "pbVar17 + 0xf4" (identifier "pbVar17") (+ "+") (number_literal "0xf4")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(uint *)(pbVar17 + 8);" (assignment_expression "uVar3 = *(uint *)(pbVar17 + 8)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(pbVar17 + 8)" (* "*") (cast_expression "(uint *)(pbVar17 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 8)" (( "(") (binary_expression "pbVar17 + 8" (identifier "pbVar17") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*(byte **)(pbVar17 + 0x78) = pbVar16;" (assignment_expression "*(byte **)(pbVar17 + 0x78) = pbVar16" (pointer_expression "*(byte **)(pbVar17 + 0x78)" (* "*") (cast_expression "(byte **)(pbVar17 + 0x78)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar17 + 0x78)" (( "(") (binary_expression "pbVar17 + 0x78" (identifier "pbVar17") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "*(byte **)(pbVar17 + 0x7c) = pbStack_9c0;" (assignment_expression "*(byte **)(pbVar17 + 0x7c) = pbStack_9c0" (pointer_expression "*(byte **)(pbVar17 + 0x7c)" (* "*") (cast_expression "(byte **)(pbVar17 + 0x7c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar17 + 0x7c)" (( "(") (binary_expression "pbVar17 + 0x7c" (identifier "pbVar17") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (identifier "pbStack_9c0")) (; ";")) (expression_statement "pbVar11[0x374] = 0;" (assignment_expression "pbVar11[0x374] = 0" (subscript_expression "pbVar11[0x374]" (identifier "pbVar11") ([ "[") (number_literal "0x374") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x375] = 0;" (assignment_expression "pbVar11[0x375] = 0" (subscript_expression "pbVar11[0x375]" (identifier "pbVar11") ([ "[") (number_literal "0x375") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x376] = 0;" (assignment_expression "pbVar11[0x376] = 0" (subscript_expression "pbVar11[0x376]" (identifier "pbVar11") ([ "[") (number_literal "0x376") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x377] = 0;" (assignment_expression "pbVar11[0x377] = 0" (subscript_expression "pbVar11[0x377]" (identifier "pbVar11") ([ "[") (number_literal "0x377") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;" (assignment_expression "*(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10" (pointer_expression "*(uint *)(pbVar17 + 0xf4)" (* "*") (cast_expression "(uint *)(pbVar17 + 0xf4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 0xf4)" (( "(") (binary_expression "pbVar17 + 0xf4" (identifier "pbVar17") (+ "+") (number_literal "0xf4")) () ")")))) (= "=") (binary_expression "uVar10 | 0x10" (identifier "uVar10") (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "*(uint *)(pbVar17 + 8) = uVar3 | 0x1000;" (assignment_expression "*(uint *)(pbVar17 + 8) = uVar3 | 0x1000" (pointer_expression "*(uint *)(pbVar17 + 8)" (* "*") (cast_expression "(uint *)(pbVar17 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 8)" (( "(") (binary_expression "pbVar17 + 8" (identifier "pbVar17") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "uVar3 | 0x1000" (identifier "uVar3") (| "|") (number_literal "0x1000"))) (; ";")) (expression_statement "pbVar19 = pbStack_9c0;" (assignment_expression "pbVar19 = pbStack_9c0" (identifier "pbVar19") (= "=") (identifier "pbStack_9c0")) (; ";")) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" (identifier "FUN_00015834") (argument_list "(pbVar11,pbVar17)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar17") () ")"))) (; ";")) (goto_statement "goto LAB_0002ce24;" (goto "goto") (statement_identifier "LAB_0002ce24") (; ";")) (} "}"))) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" (identifier "FUN_00015834") (argument_list "(pbVar11,pbVar17)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar17") () ")"))) (; ";")) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" (identifier "pbVar11") ([ "[") (number_literal "0x130") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" (identifier "pbVar11") ([ "[") (number_literal "0x131") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" (identifier "pbVar11") ([ "[") (number_literal "0x132") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" (identifier "pbVar11") ([ "[") (number_literal "0x133") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" (identifier "FUN_00015834") (argument_list "(pbVar11,pbVar17)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar17") () ")"))) (; ";")) (expression_statement "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);" (assignment_expression "pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184)" (identifier "pbVar24") (= "=") (cast_expression "(byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar29 + 0x268ac) + -0x184)" (( "(") (binary_expression "*(int *)(pcVar29 + 0x268ac) + -0x184" (pointer_expression "*(int *)(pcVar29 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar29 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0x268ac)" (( "(") (binary_expression "pcVar29 + 0x268ac" (identifier "pcVar29") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "-0x184")) () ")")))) (; ";")) (labeled_statement "LAB_0002c934:\n  pcVar28 = *(code **)(pcVar29 + 0x26d2c);" (statement_identifier "LAB_0002c934") (: ":") (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x26d2c);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x26d2c)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26d2c)" (( "(") (binary_expression "pcVar29 + 0x26d2c" (identifier "pcVar29") (+ "+") (number_literal "0x26d2c")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0002c938;" (goto "goto") (statement_identifier "LAB_0002c938") (; ";")) (labeled_statement "LAB_0002ce38:\n  pbVar24 = *(byte **)(pbVar11 + 0x14c);" (statement_identifier "LAB_0002ce38") (: ":") (expression_statement "pbVar24 = *(byte **)(pbVar11 + 0x14c);" (assignment_expression "pbVar24 = *(byte **)(pbVar11 + 0x14c)" (identifier "pbVar24") (= "=") (pointer_expression "*(byte **)(pbVar11 + 0x14c)" (* "*") (cast_expression "(byte **)(pbVar11 + 0x14c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pbVar11 + 0x14c)" (( "(") (binary_expression "pbVar11 + 0x14c" (identifier "pbVar11") (+ "+") (number_literal "0x14c")) () ")"))))) (; ";"))) (expression_statement "pbVar11[0x130] = 0;" (assignment_expression "pbVar11[0x130] = 0" (subscript_expression "pbVar11[0x130]" (identifier "pbVar11") ([ "[") (number_literal "0x130") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x131] = 0;" (assignment_expression "pbVar11[0x131] = 0" (subscript_expression "pbVar11[0x131]" (identifier "pbVar11") ([ "[") (number_literal "0x131") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x132] = 0;" (assignment_expression "pbVar11[0x132] = 0" (subscript_expression "pbVar11[0x132]" (identifier "pbVar11") ([ "[") (number_literal "0x132") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar11[0x133] = 0;" (assignment_expression "pbVar11[0x133] = 0" (subscript_expression "pbVar11[0x133]" (identifier "pbVar11") ([ "[") (number_literal "0x133") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002ca50:\n  FUN_0002b068(pbVar11,pbVar19);" (statement_identifier "LAB_0002ca50") (: ":") (expression_statement "FUN_0002b068(pbVar11,pbVar19);" (call_expression "FUN_0002b068(pbVar11,pbVar19)" (identifier "FUN_0002b068") (argument_list "(pbVar11,pbVar19)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar19") () ")"))) (; ";"))) (expression_statement "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(pbVar11 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(pbVar11 + 0x3e2)" (* "*") (cast_expression "(ushort *)(pbVar11 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar11 + 0x3e2)" (( "(") (binary_expression "pbVar11 + 0x3e2" (identifier "pbVar11") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(pbVar11,pbVar17);" (call_expression "FUN_00015834(pbVar11,pbVar17)" (identifier "FUN_00015834") (argument_list "(pbVar11,pbVar17)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar17") () ")"))) (; ";")) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" (identifier "unaff_s2") (= "=") (identifier "pbVar24")) (; ";")) (if_statement "if (pbVar24 != (byte *)0x0) {\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }" (if "if") (parenthesized_expression "(pbVar24 != (byte *)0x0)" (( "(") (binary_expression "pbVar24 != (byte *)0x0" (identifier "pbVar24") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar28 = *(code **)(pcVar29 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);\n    unaff_s2 = pbVar24;\n  }" ({ "{") (expression_statement "pcVar28 = *(code **)(pcVar29 + 0x26d2c);" (assignment_expression "pcVar28 = *(code **)(pcVar29 + 0x26d2c)" (identifier "pcVar28") (= "=") (pointer_expression "*(code **)(pcVar29 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar29 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0x26d2c)" (( "(") (binary_expression "pcVar29 + 0x26d2c" (identifier "pcVar29") (+ "+") (number_literal "0x26d2c")) () ")"))))) (; ";")) (labeled_statement "LAB_0002c938:\n    (*pcVar28)(pbVar11,pbVar24);" (statement_identifier "LAB_0002c938") (: ":") (expression_statement "(*pcVar28)(pbVar11,pbVar24);" (call_expression "(*pcVar28)(pbVar11,pbVar24)" (parenthesized_expression "(*pcVar28)" (( "(") (pointer_expression "*pcVar28" (* "*") (identifier "pcVar28")) () ")")) (argument_list "(pbVar11,pbVar24)" (( "(") (identifier "pbVar11") (, ",") (identifier "pbVar24") () ")"))) (; ";"))) (expression_statement "unaff_s2 = pbVar24;" (assignment_expression "unaff_s2 = pbVar24" (identifier "unaff_s2") (= "=") (identifier "pbVar24")) (; ";")) (} "}"))) (goto_statement "goto LAB_0002c8bc;" (goto "goto") (statement_identifier "LAB_0002c8bc") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

void function_1(type_1 png_ptr,type_2 var_10,type_3 var_5)

{
  type_4 var_50;
  type_5 *p_Var2;
  type_6 *puVar3;
  type_7 var_1;
  type_1 var_31;
  type_8 var_41;
  type_8 var_43;
  type_9 *var_44;
  type_9 *var_45;
  type_8 var_46;
  type_8 var_47;
  type_8 var_48;
  type_1 var_61;
  char *var_60;
  int var_68;
  type_10 **var_76;
  type_11 var_81;
  type_12 *pa_Var18;
  type_3 var_64;
  int var_4;
  type_1 var_30;
  type_1 var_23;
  type_13 var_72;
  type_1 var_79;
  type_3 var_63;
  int var_74;
  void *pvVar26;
  type_1 var_12;
  type_1 var_9;
  type_1 unaff_s1;
  int *piVar28;
  int *piVar29;
  type_1 var_6;
  type_1 var_28;
  type_13 ppVar31;
  type_1 var_25;
  type_14 *unaff_s5;
  type_15 *read_buffer;
  type_1 var_8;
  type_16 unaff_s7;
  type_6 *var_11;
  type_17 *var_14;
  type_1 unaff_s8;
  type_17 *var_22;
  type_17 *var_58;
  type_17 *pcVar37;
  type_18 *in_stack_fffff634;
  type_1 ppStack_9c0;
  type_19 ppStack_9b4;
  type_10 **var_66;
  type_20 pStack_99c;
  int var_77;
  type_1 ppStack_4c0;
  type_1 ppStack_4bc;
  type_1 ppStack_4b8;
  type_1 ppStack_4b4;
  type_1 ppStack_4b0;
  type_14 *pbStack_4ac;
  type_1 ppStack_4a8;
  type_16 ppStack_4a4;
  type_1 ppStack_4a0;
  type_17 *pcStack_49c;
  type_1 appStack_490 [2];
  type_17 *var_56;
  type_14 bStack_47d;
  void *var_57;
  type_1 ppStack_478;
  int *piStack_474;
  type_1 ppStack_470;
  type_17 *pcStack_46c;
  type_17 *var_42;
  type_9 *var_51;
  type_9 *puStack_448;
  type_8 pStack_444;
  type_8 pStack_440;
  type_8 pStack_43c;
  type_8 var_49;
  type_8 pStack_434;
  type_8 pStack_430;
  void *var_53;
  type_1 ppStack_404;
  int *piStack_400;
  type_1 ppStack_3fc;
  type_1 ppStack_3f8;
  type_17 *pcStack_3f4;
  type_17 *var_27;
  type_14 var_29 [4];
  void *var_32;
  type_1 ppStack_3cc;
  int *piStack_3c8;
  type_1 ppStack_3c4;
  type_1 ppStack_3c0;
  type_2 ppStack_3bc;
  type_14 *pbStack_3b8;
  type_17 *pcStack_3b4;
  type_1 ppStack_3a8;
  type_17 *var_20;
  void *var_21;
  type_1 ppStack_38c;
  type_1 ppStack_388;
  type_1 ppStack_384;
  type_6 *puStack_380;
  type_17 *pcStack_37c;
  type_6 *var_13;
  type_1 ppStack_35c;
  type_1 ppStack_358;
  type_17 *pcStack_354;
  type_12 *local_334;
  type_21 palette [256];
  type_10 buf [3];
  
  var_25 = (type_1)PTR___stack_chk_guard_000534bc;
  var_1 = png_ptr->mode;
  var_4 = *(int *)PTR___stack_chk_guard_000534bc;
  var_12 = (type_1)var_5;
  if ((var_1 & 1) == 0) {
LAB_0002bebc:
    var_5 = (type_3)unaff_s5;
    (*(type_17 *)PTR_png_chunk_error_0005351c)();
  }
  else {
    var_61 = png_ptr;
    if ((var_1 & 2) != 0) {
LAB_0002beac:
      (*(type_17 *)PTR_png_chunk_error_0005351c)();
      png_ptr = var_61;
      goto LAB_0002bebc;
    }
    unaff_s1 = png_ptr;
    if ((var_1 & 4) != 0) {
      var_2(png_ptr,var_5);
      (*(type_17 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_3 + 0x68c);
LAB_0002bd88:
      if (var_4 == *(int *)var_25) {
        return;
      }
      (*(type_17 *)PTR___stack_chk_fail_00053484)();
      unaff_s5 = (type_14 *)var_5;
      goto LAB_0002beac;
    }
    png_ptr->mode = var_1 | 2;
    if ((png_ptr->color_type & 2) == 0) {
      var_2(png_ptr,var_5);
      (*(type_17 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_3 + 0x6b4);
      goto LAB_0002bd88;
    }
    var_6 = (type_1)0xaaaa0000;
    if ((var_5 < 0x301) && (var_6 = (type_1)(var_5 / 3), var_5 == (int)var_6 * 3)) {
      local_334 = (type_12 *)((int)var_6 << 1);
      if (png_ptr->color_type == 3) {
        var_12 = (type_1)(1 << (png_ptr->bit_depth & 0x1f));
        if ((int)var_12 < (int)var_6) {
          var_6 = var_12;
        }
        local_334 = (type_12 *)((int)var_6 << 1);
        if (0 < (int)var_6) goto LAB_0002bc70;
      }
      else if (var_6 != (type_1)0x0) {
LAB_0002bc70:
        unaff_s7 = buf;
        var_8 = (type_1)
                   ((int)var_6->jmp_buf_local[0].__jmpbuf[0].__regs +
                   (int)((type_1)palette)->jmp_buf_local[0].__jmpbuf[0].__regs +
                   (int)((*local_334)[0].__jmpbuf[0].__regs + -4) + -8);
        var_12 = (type_1)palette;
        do {
          var_7(png_ptr,unaff_s7,3);
          var_9 = (type_1)((int)&var_12->jmp_buf_local[0].__jmpbuf[0].__pc + 3);
          *(type_10 *)&var_12->jmp_buf_local[0].__jmpbuf[0].__pc = buf[0];
          *(type_10 *)((int)&var_12->jmp_buf_local[0].__jmpbuf[0].__pc + 1) = buf[1];
          *(type_10 *)((int)&var_12->jmp_buf_local[0].__jmpbuf[0].__pc + 2) = buf[2];
          var_12 = var_9;
        } while (var_8 != var_9);
      }
      unaff_s8 = (type_1)palette;
      var_2(png_ptr,var_5 - ((int)var_6->jmp_buf_local[0].__jmpbuf[0].__regs +
                                      (int)((*local_334)[0].__jmpbuf[0].__regs + -4)));
      var_12 = unaff_s8;
      (*(type_17 *)PTR_png_set_PLTE_000533d0)(png_ptr,var_10,unaff_s8,var_6);
      if (png_ptr->num_trans == 0) {
        if (var_10 != (type_2)0x0) {
          var_1 = var_10->valid;
          if ((var_1 & 0x10) != 0) goto LAB_0002bd04;
          goto LAB_0002bd24;
        }
      }
      else {
        png_ptr->num_trans = 0;
        if (var_10 == (type_2)0x0) {
          var_61 = png_ptr;
          (*(type_17 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_3 + 0x6d0);
        }
        else {
LAB_0002bd04:
          puVar3 = PTR_png_chunk_benign_error_0005349c;
          var_11 = var_3;
          var_10->num_trans = 0;
          (*(type_17 *)puVar3)(png_ptr,var_11 + 0x6d0);
          var_1 = var_10->valid;
LAB_0002bd24:
          if ((var_1 & 0x40) != 0) {
            (*(type_17 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_3 + 0x6e4);
            var_1 = var_10->valid;
          }
          var_61 = png_ptr;
          if ((var_1 & 0x20) != 0) {
            (*(type_17 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_3 + 0x6f8);
          }
        }
      }
      goto LAB_0002bd88;
    }
    var_2(png_ptr,var_5);
    if (png_ptr->color_type != '\x03') {
      (*(type_17 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_3 + 0x69c);
      goto LAB_0002bd88;
    }
  }
  var_22 = png_handle_IEND;
  var_11 = PTR_png_chunk_error_0005351c;
  (*(type_17 *)PTR_png_chunk_error_0005351c)();
  var_13 = var_11 + 0x2f114;
  ppStack_35c = var_9;
  ppStack_358 = unaff_s1;
  pcStack_354 = var_22;
  if ((png_ptr->mode & 5) == 5) {
    png_ptr->mode = png_ptr->mode | 0x18;
    var_2(png_ptr,(type_3)var_12);
    if (var_12 != (type_1)0x0) {
                    /* WARNING: Could not recover jumptable at 0x0002bf60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(type_17 **)(var_13 + -0x7b54))(png_ptr,*(int *)(var_13 + -0x7fd4) + 0x69c);
      return;
    }
    return;
  }
  var_14 = *(type_17 **)(var_11 + 0x27640);
  var_58 = png_handle_gAMA;
  var_30 = (type_1)(*(int *)(var_11 + 0x27140) + 0x68c);
  (*var_14)();
  var_22 = var_14 + 0x2f078;
  piVar28 = *(int **)(var_14 + 0x27544);
  puStack_380 = (type_6 *)var_25;
  var_21 = (void *)*piVar28;
  var_61 = png_ptr;
  ppStack_3cc = var_9;
  var_20 = var_22;
  ppStack_38c = var_9;
  ppStack_388 = unaff_s1;
  ppStack_384 = var_6;
  pcStack_37c = var_58;
  if ((png_ptr->mode & 1) != 0) {
    if ((png_ptr->mode & 6) == 0) {
      if (var_12 == (type_1)&var_15) {
        var_25 = (type_1)&var_16;
        var_7(png_ptr,(type_16)var_25,4);
        var_72 = (type_13)0x0;
        var_4 = var_2(png_ptr,0);
        if (var_4 == 0) {
          var_12 = (type_1)var_17(var_25,var_72);
          var_18(png_ptr,&png_ptr->colorspace,(type_8)var_12);
          var_61 = png_ptr;
          var_19(png_ptr,(type_2)var_30);
        }
      }
      else {
        var_2(png_ptr,(type_3)var_12);
        (**(type_17 **)(var_20 + -0x7b54))(png_ptr,*(int *)(var_20 + -0x7fd4) + 0x69c);
      }
    }
    else {
      var_2(png_ptr,(type_3)var_12);
      (**(type_17 **)(var_20 + -0x7b54))(png_ptr,*(int *)(var_20 + -0x7fd4) + 0x68c);
    }
    var_22 = var_20;
    if (var_21 == (void *)*piVar28) {
      return;
    }
    (**(type_17 **)(var_20 + -0x7b6c))();
    ppStack_3cc = png_ptr;
    var_6 = var_30;
  }
  var_14 = *(type_17 **)(var_22 + -0x7ad4);
  var_58 = png_handle_sBIT;
  var_23 = (type_1)(*(int *)(var_22 + -0x7fd4) + 0x6a4);
  (*var_14)();
  var_22 = var_14 + 0x2ef14;
  piVar29 = *(int **)(var_14 + 0x273e0);
  var_32 = (void *)*piVar29;
  var_30 = var_61;
  ppStack_404 = ppStack_3cc;
  var_27 = var_22;
  piStack_3c8 = piVar28;
  ppStack_3c4 = var_6;
  ppStack_3c0 = var_25;
  ppStack_3bc = var_10;
  pbStack_3b8 = (type_14 *)var_5;
  pcStack_3b4 = var_58;
  if ((var_61->mode & 1) != 0) {
    if ((var_61->mode & 6) == 0) {
      if ((var_23 == (type_1)0x0) ||
         ((var_23->jmp_buf_local[0].__jmpbuf[0].__regs[0] & 2U) == 0)) {
        var_25 = (type_1)0x3;
        if (var_61->color_type == '\x03') {
          var_28 = (type_1)&var_24;
          if (var_12 == (type_1)0x3) goto LAB_0002c168;
LAB_0002c268:
          var_4 = *(int *)(var_14 + 0x26f40);
        }
        else {
          var_25 = (type_1)(type_7)var_61->channels;
          var_28 = (type_1)(type_7)var_61->bit_depth;
          if (var_25 != var_12) goto LAB_0002c268;
LAB_0002c168:
          var_4 = *(int *)(var_14 + 0x26f40);
          if (var_25 < (type_1)&var_26) {
            var_29[0] = (type_14)var_28;
            var_12 = var_25;
            var_29[1] = var_29[0];
            var_29[2] = var_29[0];
            var_29[3] = var_29[0];
            var_7(var_61,var_29,(type_3)var_25);
            var_4 = var_2(var_61,0);
            var_6 = var_28;
            var_10 = (type_2)var_25;
            var_5 = (type_3)var_29;
            if (var_4 == 0) {
              if (var_25 == (type_1)0x0) {
LAB_0002c1f4:
                if ((var_61->color_type & 2) == 0) {
                  (var_61->sig_bit).gray = var_29[0];
                  (var_61->sig_bit).red = var_29[0];
                  (var_61->sig_bit).green = var_29[0];
                  (var_61->sig_bit).blue = var_29[0];
                  (var_61->sig_bit).alpha = var_29[1];
                }
                else {
                  (var_61->sig_bit).red = var_29[0];
                  (var_61->sig_bit).green = var_29[1];
                  (var_61->sig_bit).blue = var_29[2];
                  (var_61->sig_bit).alpha = var_29[3];
                }
                var_12 = (type_1)&var_61->sig_bit;
                var_30 = var_61;
                (**(type_17 **)(var_27 + -0x7b38))(var_61,var_23);
                var_10 = (type_2)var_25;
              }
              else {
                if (((type_1)(type_7)var_29[0] != (type_1)0x0) &&
                   (p_Var2 = (type_5 *)var_29,
                   (type_1)(type_7)var_29[0] <= var_28)) {
                  var_25 = (type_1)(var_29 + (int)var_25);
                  do {
                    var_30 = (type_1)((int)&p_Var2->__jmpbuf[0].__pc + 1);
                    if (var_25 == var_30) goto LAB_0002c1f4;
                    var_31 = (type_1)
                             (type_7)*(type_14 *)&var_30->jmp_buf_local[0].__jmpbuf[0].__pc;
                  } while ((var_31 != (type_1)0x0) &&
                          (p_Var2 = var_30->jmp_buf_local, var_31 <= var_28));
                }
                var_30 = var_61;
                (**(type_17 **)(var_27 + -0x7b54))
                          (var_61,*(int *)(var_27 + -0x7fd4) + 0x69c);
                var_10 = (type_2)var_25;
              }
            }
            goto LAB_0002c230;
          }
        }
        ppStack_3a8 = var_12;
        (**(type_17 **)(var_14 + 0x273c0))(var_61,var_4 + 0x69c);
        var_12 = ppStack_3a8;
        var_2(var_61,(type_3)ppStack_3a8);
        var_6 = var_28;
        var_10 = (type_2)var_25;
      }
      else {
        var_2(var_61,(type_3)var_12);
        (**(type_17 **)(var_27 + -0x7b54))(var_61,*(int *)(var_27 + -0x7fd4) + -0x1a18);
      }
    }
    else {
      var_2(var_61,(type_3)var_12);
      (**(type_17 **)(var_27 + -0x7b54))(var_61,*(int *)(var_27 + -0x7fd4) + 0x68c);
    }
LAB_0002c230:
    var_22 = var_27;
    if (var_32 == (void *)*piVar29) {
      return;
    }
    (**(type_17 **)(var_27 + -0x7b6c))();
    ppStack_404 = var_61;
  }
  var_14 = *(type_17 **)(var_22 + -0x7ad4);
  var_58 = png_handle_cHRM;
  var_28 = (type_1)(*(int *)(var_22 + -0x7fd4) + 0x6a4);
  (*var_14)();
  var_22 = var_14 + 0x2eca8;
  piVar28 = *(int **)(var_14 + 0x27174);
  var_53 = (void *)*piVar28;
  var_25 = var_30;
  var_61 = ppStack_404;
  var_42 = var_22;
  piStack_400 = piVar29;
  ppStack_3fc = var_6;
  ppStack_3f8 = var_23;
  pcStack_3f4 = var_58;
  if ((var_30->mode & 1) != 0) {
    if ((var_30->mode & 6) == 0) {
      if (var_12 == (type_1)0x20) {
        var_7(var_30,(type_16)&var_33,0x20);
        var_72 = (type_13)0x0;
        var_4 = var_2(var_30,0);
        var_23 = (type_1)&var_33;
        if (var_4 == 0) {
          var_41 = var_17((type_1)&var_33,var_72);
          pStack_434 = var_41;
          var_43 = var_17((type_1)&var_34,var_72);
          pStack_430 = var_43;
          var_44 = (type_9 *)var_17((type_1)&var_35,var_72);
          var_51 = var_44;
          var_45 = (type_9 *)var_17((type_1)&var_36,var_72);
          puStack_448 = var_45;
          var_46 = var_17((type_1)&var_37,var_72);
          pStack_444 = var_46;
          var_47 = var_17((type_1)&var_38,var_72);
          pStack_440 = var_47;
          var_48 = var_17((type_1)&var_39,var_72);
          pStack_43c = var_48;
          var_49 = var_17((type_1)&var_40,var_72);
          if (var_41 == -1) {
            var_4 = *(int *)(var_42 + -0x7fd4);
          }
          else {
            var_4 = *(int *)(var_42 + -0x7fd4);
            if (((((var_43 != -1) && (var_44 != &DAT_ffffffff)) && (var_45 != &DAT_ffffffff)) &&
                ((var_46 != -1 && (var_47 != -1)))) && ((var_48 != -1 && (var_49 != -1)))) {
              var_50 = (var_30->colorspace).flags;
              var_25 = var_30;
              if (-1 < (short)var_50) {
                if ((var_50 & 0x10) == 0) {
                  (var_30->colorspace).flags = var_50 | 0x10;
                  var_12 = (type_1)&var_51;
                  var_52
                            (var_30,&var_30->colorspace,(type_22 *)var_12,1);
                  var_19(var_30,(type_2)var_28);
                }
                else {
                  (var_30->colorspace).flags = var_50 | 0x8000;
                  var_19(var_30,(type_2)var_28);
                  (**(type_17 **)(var_42 + -0x7b54))
                            (var_30,*(int *)(var_42 + -0x7fd4) + -0x1a18);
                }
              }
              goto LAB_0002c3d4;
            }
          }
          var_25 = var_30;
          (**(type_17 **)(var_42 + -0x7b54))(var_30,var_4 + 0x70c);
        }
      }
      else {
        var_2(var_30,(type_3)var_12);
        (**(type_17 **)(var_42 + -0x7b54))(var_30,*(int *)(var_42 + -0x7fd4) + 0x69c);
      }
    }
    else {
      var_2(var_30,(type_3)var_12);
      (**(type_17 **)(var_42 + -0x7b54))(var_30,*(int *)(var_42 + -0x7fd4) + 0x68c);
    }
LAB_0002c3d4:
    var_22 = var_42;
    if (var_53 == (void *)*piVar28) {
      return;
    }
    (**(type_17 **)(var_42 + -0x7b6c))();
    var_61 = var_30;
    var_6 = var_28;
  }
  var_14 = *(type_17 **)(var_22 + -0x7ad4);
  var_58 = png_handle_sRGB;
  var_28 = (type_1)(*(int *)(var_22 + -0x7fd4) + 0x6a4);
  (*var_14)();
  var_22 = var_14 + 0x2ea14;
  var_30 = *(type_1 *)(var_14 + 0x26ee0);
  var_57 = var_30->jmp_buf_local[0].__jmpbuf[0].__pc;
  var_56 = var_22;
  ppStack_478 = var_61;
  piStack_474 = piVar28;
  ppStack_470 = var_6;
  pcStack_46c = var_58;
  if ((var_25->mode & 1) == 0) {
    var_79 = (type_1)(*(int *)(var_14 + 0x26a40) + 0x6a4);
    (**(type_17 **)(var_14 + 0x26f40))();
    var_31 = var_25;
  }
  else {
    var_31 = var_25;
    if ((var_25->mode & 6) == 0) {
      if (var_12 == (type_1)&var_54) {
        var_7(var_25,&bStack_47d,1);
        var_79 = (type_1)0x0;
        var_4 = var_2(var_25,0);
        if (var_4 == 0) {
          var_50 = (var_25->colorspace).flags;
          if (-1 < (short)var_50) {
            if ((var_50 & 4) == 0) {
              var_12 = (type_1)(type_7)bStack_47d;
              var_55(var_25,&var_25->colorspace,(int)var_12);
              var_31 = var_25;
              var_79 = var_28;
              var_19(var_25,(type_2)var_28);
            }
            else {
              (var_25->colorspace).flags = var_50 | 0x8000;
              var_19(var_25,(type_2)var_28);
              var_79 = (type_1)(*(int *)(var_56 + -0x7fd4) + 0x71c);
              var_31 = var_25;
              (**(type_17 **)(var_56 + -0x7b54))();
            }
          }
        }
      }
      else {
        var_2(var_25,(type_3)var_12);
        var_79 = (type_1)(*(int *)(var_56 + -0x7fd4) + 0x69c);
        (**(type_17 **)(var_56 + -0x7b54))();
      }
    }
    else {
      var_2(var_25,(type_3)var_12);
      var_79 = (type_1)(*(int *)(var_56 + -0x7fd4) + 0x68c);
      (**(type_17 **)(var_56 + -0x7b54))();
    }
    var_61 = var_25;
    var_6 = var_28;
    var_22 = var_56;
    if (var_57 == var_30->jmp_buf_local[0].__jmpbuf[0].__pc) {
      return;
    }
  }
  var_58 = *(type_17 **)(var_22 + -0x7b6c);
  pcVar37 = png_handle_iCCP;
  (*var_58)();
  var_14 = var_58 + 0x2e880;
  piVar28 = *(int **)(var_58 + 0x26d4c);
  var_28 = (type_1)(var_31->mode & 1);
  var_77 = *piVar28;
  var_25 = var_6;
  var_22 = var_14;
  ppStack_4c0 = var_61;
  ppStack_4bc = var_30;
  ppStack_4b8 = var_6;
  ppStack_4b4 = var_23;
  ppStack_4b0 = (type_1)var_10;
  pbStack_4ac = (type_14 *)var_5;
  ppStack_4a8 = var_8;
  ppStack_4a4 = unaff_s7;
  ppStack_4a0 = unaff_s8;
  pcStack_49c = pcVar37;
  appStack_490[0] = var_12;
  if (var_28 == (type_1)0x0) goto LAB_0002cd34;
  if ((var_31->mode & 6) != 0) {
    var_2(var_31,(type_3)var_12);
    (**(type_17 **)(var_14 + -0x7b54))(var_31,*(int *)(var_14 + -0x7fd4) + 0x68c);
    goto LAB_0002c8bc;
  }
  if (var_12 < (type_1)0xe) {
    var_2(var_31,(type_3)var_12);
    (**(type_17 **)(var_14 + -0x7b54))(var_31,*(int *)(var_14 + -0x7fd4) + 0x237c);
    goto LAB_0002c8bc;
  }
  var_50 = (var_31->colorspace).flags;
  if ((short)var_50 < 0) {
    var_2(var_31,(type_3)var_12);
    goto LAB_0002c8bc;
  }
  if ((var_50 & 4) == 0) {
    var_61 = (type_1)0x51;
    if (var_12 < (type_1)0x51) {
      var_61 = var_12;
    }
    var_25 = &pStack_99c;
    var_12 = var_61;
    var_7(var_31,(type_16)var_25,(type_3)var_61);
    appStack_490[0] = (type_1)((int)appStack_490[0] - (int)var_61);
    if (appStack_490[0] < (type_1)0xb) {
      var_59(var_31);
      return;
    }
    var_60 = (char *)((int)&pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc + 1);
    if (pStack_99c.jmp_buf_local[0].__jmpbuf[0].__pc._0_1_ == '\0') {
LAB_0002c974:
      var_25 = (type_1)(*(int *)(var_14 + -0x7fd4) + 0x748);
    }
    else {
      do {
        var_30 = var_28;
        var_8 = (type_1)((int)&var_30->jmp_buf_local[0].__jmpbuf[0].__pc + 1);
        var_28 = var_30;
        if (*var_60 == '\0') goto LAB_0002c86c;
        var_28 = (type_1)((int)&var_30->jmp_buf_local[0].__jmpbuf[0].__pc + 1);
        if (var_28 == (type_1)0x50) goto LAB_0002c974;
        var_60 = var_60 + 1;
      } while (var_61 != var_28);
      var_8 = (type_1)((int)&var_30->jmp_buf_local[0].__jmpbuf[0].__pc + 2);
LAB_0002c86c:
      if ((var_8 < var_61) &&
         (*(char *)((int)var_8->jmp_buf_local[0].__jmpbuf[0].__regs +
                   (int)(pStack_99c.jmp_buf_local[0].__jmpbuf[0].__regs + -4)) == '\0')) {
        var_4 = var_62(var_31,0x69434350);
        if (var_4 != 0) {
          var_25 = (type_1)(var_31->zstream).msg;
          var_12 = appStack_490[0];
          goto LAB_0002ca50;
        }
        var_72 = (type_13)((int)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs + 0x1c);
        (**(type_17 **)(var_14 + -0x7c5c))(var_72,0,0x84);
        p_Var2 = var_28->jmp_buf_local;
        var_63 = var_31->zowner;
        var_64 = var_31->chunk_name;
        var_28 = (type_1)((int)var_61 + (-2 - (int)var_28));
        var_66 = (type_10 **)0x84;
        (var_31->zstream).next_in =
             (type_16)((int)&p_Var2->__jmpbuf[0].__pc + 2) + (int)var_25->jmp_buf_local;
        (var_31->zstream).avail_in = (type_23)var_28;
        if (var_63 == var_64) {
          var_4 = *(int *)(var_14 + -0x7e0c);
          (var_31->zstream).next_out = var_72;
          read_buffer = pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1b;
          (var_31->zstream).avail_out = 0;
          var_65(var_31,(type_16)read_buffer,(type_23)appStack_490,
                           (png_uint_32p)&var_66,(type_16)0x0,in_stack_fffff634,(int)var_14
                          );
          if (var_66 == (type_10 **)0x0) {
            ppStack_9b4 = &var_31->colorspace;
            ppStack_9c0 = (type_1)
                          ((type_7)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._4_1_ *
                           0x1000000 +
                           (type_7)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._5_1_ * 0x10000
                           + (type_7)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._7_1_ +
                          (type_7)pStack_99c.jmp_buf_local[0].__jmpbuf[0].__fpregs[3]._6_1_ * 0x100);
            var_12 = var_25;
            var_68 = var_67
                               (var_31,ppStack_9b4,(type_24)var_25,(type_3)ppStack_9c0
                               );
            if ((var_68 == 0) ||
               (var_12 = var_25,
               var_68 = var_69
                                  (var_31,ppStack_9b4,(type_24)var_25,
                                   (type_3)ppStack_9c0,var_72,(type_7)var_31->color_type),
               var_68 == 0)) {
LAB_0002caf4:
              var_31->zowner = 0;
              var_2(var_31,(type_3)appStack_490[0]);
              (var_31->colorspace).flags = (var_31->colorspace).flags | 0x8000;
              var_19(var_31,(type_2)var_79);
              var_6 = var_25;
              goto LAB_0002c8bc;
            }
            var_12 = (type_1)&var_70;
            var_28 = (type_1)var_71(var_31,(type_18)ppStack_9c0,2);
            if (var_28 == (type_1)0x0) {
              var_4 = *(int *)(var_14 + -0x7fd4);
              var_31->zowner = 0;
              var_25 = (type_1)(var_4 + -0x184);
            }
            else {
              var_12 = var_28;
              do {
                ppVar31 = var_72 + 0x10;
                pvVar26 = *(void **)(var_72 + 4);
                var_74 = *(int *)(var_72 + 8);
                var_68 = *(int *)(var_72 + 0xc);
                var_12->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)var_72;
                var_12->jmp_buf_local[0].__jmpbuf[0].__sp = pvVar26;
                var_12->jmp_buf_local[0].__jmpbuf[0].__regs[0] = var_74;
                var_12->jmp_buf_local[0].__jmpbuf[0].__regs[1] = var_68;
                var_12 = (type_1)(var_12->jmp_buf_local[0].__jmpbuf[0].__regs + 2);
                var_72 = ppVar31;
              } while ((type_15 *)ppVar31 != pStack_99c.jmp_buf_local[0].__saved_mask.__val + 0x1a);
              var_12->jmp_buf_local[0].__jmpbuf[0].__pc = *(void **)ppVar31;
              var_68 = (type_7)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._0_1_ * 0x1000000
                       + (type_7)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._1_1_ * 0x10000
                       + (type_7)(type_14)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a] +
                       (type_7)pStack_99c.jmp_buf_local[0].__saved_mask.__val[0x1a]._2_1_ * 0x100;
              var_76 = (type_10 **)(var_68 * 0xc);
              var_66 = var_76;
              if (var_31->zowner == var_31->chunk_name) {
                (var_31->zstream).next_out =
                     (type_25 *)(var_28->jmp_buf_local[0].__saved_mask.__val + 6);
                (var_31->zstream).avail_out = 0;
                (*(type_17 *)(var_4 + -0x47c4))(var_31,read_buffer,appStack_490,&var_66,0);
              }
              else {
                (var_31->zstream).msg = (char *)(*(int *)(var_14 + -0x7fd4) + 0x660);
              }
              if (var_66 != (type_10 **)0x0) goto LAB_0002ca44;
              var_12 = var_25;
              var_74 = var_73
                                 (var_31,ppStack_9b4,(type_24)var_25,
                                  (type_3)ppStack_9c0,(type_13)var_28);
              if (var_74 == 0) goto LAB_0002caf4;
              var_66 = (type_10 **)((int)ppStack_9c0 + var_68 * -0xc + -0x84);
              if (var_31->zowner != var_31->chunk_name) {
                (var_31->zstream).msg = (char *)(*(int *)(var_14 + -0x7fd4) + 0x660);
                var_75();
                return;
              }
              (var_31->zstream).next_out =
                   (type_16)((int)(var_76 + 0x21) + (int)var_28->jmp_buf_local);
              (var_31->zstream).avail_out = 0;
              (*(type_17 *)(var_4 + -0x47c4))(var_31,read_buffer,appStack_490,&var_66,1);
              var_12 = appStack_490[0];
              var_22 = var_14;
              if (appStack_490[0] == (type_1)0x0) {
                if (var_66 == (type_10 **)0x0) goto LAB_0002cd68;
                goto LAB_0002ce38;
              }
              var_76 = var_66;
              if ((int)(var_31->flags << 0xb) < 0) goto LAB_0002cd44;
              var_4 = *(int *)(var_14 + -0x7fd4);
              var_31->zowner = 0;
              var_25 = (type_1)(var_4 + 0x674);
            }
            goto LAB_0002c900;
          }
        }
        else {
          (var_31->zstream).msg = (char *)(*(int *)(var_14 + -0x7fd4) + 0x660);
        }
LAB_0002ca44:
        var_25 = (type_1)(var_31->zstream).msg;
        var_31->zowner = 0;
        var_12 = appStack_490[0];
        goto LAB_0002ca50;
      }
      var_25 = (type_1)(*(int *)(var_14 + -0x7fd4) + 0x730);
    }
  }
  else {
    var_25 = (type_1)(*(int *)(var_58 + 0x268ac) + 0x71c);
  }
LAB_0002c900:
  var_2(var_31,(type_3)appStack_490[0]);
  (var_31->colorspace).flags = (var_31->colorspace).flags | 0x8000;
  var_19(var_31,(type_2)var_79);
LAB_0002c934:
  var_22 = *(type_17 **)(var_14 + -0x7b54);
  do {
    (*var_22)(var_31,var_25);
    var_6 = var_25;
LAB_0002c8bc:
    do {
      while( true ) {
        if (var_77 == *piVar28) {
          return;
        }
        var_22 = var_14;
        (**(type_17 **)(var_14 + -0x7b6c))();
        var_30 = var_79;
        var_25 = var_6;
        unaff_s8 = var_31;
LAB_0002cd34:
        var_31 = unaff_s8;
        var_79 = var_30;
        var_76 = (type_10 **)(**(type_17 **)(var_14 + -0x7ad4))();
LAB_0002cd44:
        if (var_76 != (type_10 **)0x0) break;
        (**(type_17 **)(var_14 + -0x7c88))(var_31,*(int *)(var_14 + -0x7fd4) + 0x674);
        var_14 = var_22;
LAB_0002cd68:
        var_2(var_31,(type_3)appStack_490[0]);
        var_12 = var_28;
        var_78(var_31,ppStack_9b4,(type_13)var_28,(var_31->zstream).adler);
        if (var_79 != (type_1)0x0) {
          var_12 = (type_1)0x10;
          (**(type_17 **)(var_14 + -0x7cb0))(var_31,var_79,0x10,0);
          var_81 = var_80(var_31,(type_18)var_8);
          var_79->jmp_buf_local[0].__saved_mask.__val[2] = (type_15)var_81;
          if (var_81 == (type_11)0x0) {
            (var_31->colorspace).flags = (var_31->colorspace).flags | 0x8000;
            var_19(var_31,(type_2)var_79);
            var_50 = (var_31->colorspace).flags;
            var_31->zowner = 0;
            (var_31->colorspace).flags = var_50 | 0x8000;
            var_19(var_31,(type_2)var_79);
            var_25 = (type_1)(*(int *)(var_14 + -0x7fd4) + -0x184);
            goto LAB_0002c934;
          }
          (**(type_17 **)(var_14 + -0x7b2c))(var_81,var_25,var_8);
          pa_Var18 = var_79->jmp_buf_ptr;
          var_1 = var_79->jmp_buf_local[0].__jmpbuf[0].__regs[0];
          var_79->jmp_buf_local[0].__saved_mask.__val[3] = (type_15)var_28;
          var_79->jmp_buf_local[0].__saved_mask.__val[4] = (type_15)ppStack_9c0;
          var_31->read_buffer = (type_16)0x0;
          var_79->jmp_buf_ptr = (type_12 *)((type_7)pa_Var18 | 0x10);
          var_79->jmp_buf_local[0].__jmpbuf[0].__regs[0] = var_1 | 0x1000;
          var_12 = ppStack_9c0;
          var_19(var_31,(type_2)var_79);
        }
        var_31->zowner = 0;
        var_6 = var_25;
      }
LAB_0002ce38:
      var_25 = (type_1)(var_31->zstream).msg;
      var_31->zowner = 0;
      var_14 = var_22;
LAB_0002ca50:
      var_2(var_31,(type_3)var_12);
      (var_31->colorspace).flags = (var_31->colorspace).flags | 0x8000;
      var_19(var_31,(type_2)var_79);
      var_6 = var_25;
    } while (var_25 == (type_1)0x0);
    var_22 = *(type_17 **)(var_14 + -0x7b54);
  } while( true );
}


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

void MASKED(byte *param_1,byte *param_2,byte *param_3)

{
  ushort uVar1;
  undefined *puVar2;
  uint uVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  byte *pbVar11;
  undefined4 uVar12;
  byte *pbVar13;
  undefined1 *puVar14;
  int iVar15;
  byte *pbVar16;
  byte *pbVar17;
  undefined4 uVar18;
  byte *pbVar19;
  undefined4 uVar20;
  byte *unaff_s0;
  byte *unaff_s1;
  int *piVar21;
  int *piVar22;
  byte *unaff_s2;
  byte *pbVar23;
  byte *pbVar24;
  undefined *puVar25;
  byte *pbVar26;
  byte *unaff_s5;
  byte *unaff_s6;
  byte *unaff_s7;
  undefined *puVar27;
  code *pcVar28;
  byte *unaff_s8;
  code *pcVar29;
  code *pcVar30;
  byte *pbStack_9c0;
  byte *pbStack_9b4;
  byte *pbStack_9a0;
  byte abStack_99c [84];
  byte bStack_948;
  byte bStack_947;
  byte bStack_946;
  byte bStack_945;
  undefined4 auStack_944 [31];
  byte bStack_8c8;
  byte bStack_8c7;
  byte bStack_8c6;
  byte bStack_8c5;
  undefined1 auStack_8c4 [1024];
  int iStack_4c4;
  byte *pbStack_4c0;
  byte *pbStack_4bc;
  byte *pbStack_4b8;
  undefined1 *puStack_4b4;
  byte *pbStack_4b0;
  byte *pbStack_4ac;
  byte *pbStack_4a8;
  byte *pbStack_4a4;
  byte *pbStack_4a0;
  code *pcStack_49c;
  byte *apbStack_490 [2];
  code *pcStack_488;
  byte bStack_47d;
  int iStack_47c;
  byte *pbStack_478;
  int *piStack_474;
  byte *pbStack_470;
  code *pcStack_46c;
  code *pcStack_458;
  int iStack_44c;
  int iStack_448;
  int iStack_444;
  int iStack_440;
  int iStack_43c;
  int iStack_438;
  int iStack_434;
  int iStack_430;
  undefined1 auStack_42c [4];
  undefined1 auStack_428 [4];
  undefined1 auStack_424 [4];
  undefined1 auStack_420 [4];
  undefined1 auStack_41c [4];
  undefined1 auStack_418 [4];
  undefined1 auStack_414 [4];
  undefined1 auStack_410 [4];
  int iStack_40c;
  byte *pbStack_404;
  int *piStack_400;
  byte *pbStack_3fc;
  undefined1 *puStack_3f8;
  code *pcStack_3f4;
  code *pcStack_3e0;
  byte abStack_3d8 [4];
  int iStack_3d4;
  byte *pbStack_3cc;
  int *piStack_3c8;
  byte *pbStack_3c4;
  undefined *puStack_3c0;
  byte *pbStack_3bc;
  byte *pbStack_3b8;
  code *pcStack_3b4;
  byte *pbStack_3a8;
  code *pcStack_3a0;
  undefined auStack_398 [4];
  int iStack_394;
  byte *pbStack_38c;
  byte *pbStack_388;
  byte *pbStack_384;
  undefined *puStack_380;
  code *pcStack_37c;
  undefined *puStack_368;
  byte *pbStack_35c;
  byte *pbStack_358;
  code *pcStack_354;
  int local_334;
  byte local_330 [768];
  byte local_30;
  byte local_2f;
  byte local_2e;
  int local_2c;
  
  puVar25 = PTR___stack_chk_guard_000534bc;
  uVar3 = *(uint *)(param_1 + 0x124);
  local_2c = *(int *)PTR___stack_chk_guard_000534bc;
  pbVar19 = param_3;
  if ((uVar3 & 1) == 0) {
LAB_0002bebc:
    param_3 = unaff_s5;
    (*(code *)PTR_png_chunk_error_0005351c)();
  }
  else {
    pbVar24 = param_1;
    if ((uVar3 & 2) != 0) {
LAB_0002beac:
      (*(code *)PTR_png_chunk_error_0005351c)();
      param_1 = pbVar24;
      goto LAB_0002bebc;
    }
    unaff_s1 = param_1;
    if ((uVar3 & 4) != 0) {
      FUN_0002b068(param_1,param_3);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);
LAB_0002bd88:
      if (local_2c == *(int *)puVar25) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_00053484)();
      unaff_s5 = param_3;
      goto LAB_0002beac;
    }
    *(uint *)(param_1 + 0x124) = uVar3 | 2;
    if ((param_1[0x1ff] & 2) == 0) {
      FUN_0002b068(param_1,param_3);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6b4);
      goto LAB_0002bd88;
    }
    unaff_s2 = (byte *)0xaaaa0000;
    if ((param_3 < &DAT_00000301) &&
       (unaff_s2 = (byte *)((uint)param_3 / 3), param_3 == (byte *)((int)unaff_s2 * 3))) {
      local_334 = (int)unaff_s2 << 1;
      if (param_1[0x1ff] == 3) {
        pbVar19 = (byte *)(1 << (param_1[0x200] & 0x1f));
        if ((int)pbVar19 < (int)unaff_s2) {
          unaff_s2 = pbVar19;
        }
        local_334 = (int)unaff_s2 << 1;
        if (0 < (int)unaff_s2) goto LAB_0002bc70;
      }
      else if (unaff_s2 != (byte *)0x0) {
LAB_0002bc70:
        unaff_s7 = &local_30;
        unaff_s6 = local_330 + (int)(unaff_s2 + local_334);
        pbVar19 = local_330;
        do {
          FUN_0002aef8(param_1,unaff_s7,3);
          unaff_s0 = pbVar19 + 3;
          *pbVar19 = local_30;
          pbVar19[1] = local_2f;
          pbVar19[2] = local_2e;
          pbVar19 = unaff_s0;
        } while (unaff_s6 != unaff_s0);
      }
      unaff_s8 = local_330;
      FUN_0002b068(param_1,(int)param_3 - (int)(unaff_s2 + local_334));
      pbVar19 = unaff_s8;
      (*(code *)PTR_png_set_PLTE_000533d0)(param_1,param_2,unaff_s8,unaff_s2);
      if (*(short *)(param_1 + 0x1f8) == 0) {
        if (param_2 != (byte *)0x0) {
          uVar3 = *(uint *)(param_2 + 8);
          if ((uVar3 & 0x10) != 0) goto LAB_0002bd04;
          goto LAB_0002bd24;
        }
      }
      else {
        param_1[0x1f8] = 0;
        param_1[0x1f9] = 0;
        if (param_2 == (byte *)0x0) {
          pbVar24 = param_1;
          (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6d0);
        }
        else {
LAB_0002bd04:
          puVar2 = PTR_png_chunk_benign_error_0005349c;
          puVar27 = PTR_s_nt_0005301c;
          param_2[0x16] = 0;
          param_2[0x17] = 0;
          (*(code *)puVar2)(param_1,puVar27 + 0x6d0);
          uVar3 = *(uint *)(param_2 + 8);
LAB_0002bd24:
          if ((uVar3 & 0x40) != 0) {
            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6e4);
            uVar3 = *(uint *)(param_2 + 8);
          }
          pbVar24 = param_1;
          if ((uVar3 & 0x20) != 0) {
            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x6f8);
          }
        }
      }
      goto LAB_0002bd88;
    }
    FUN_0002b068(param_1,param_3);
    if (param_1[0x1ff] != 3) {
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);
      goto LAB_0002bd88;
    }
  }
  pcVar29 = FUN_0002bedc;
  puVar27 = PTR_png_chunk_error_0005351c;
  (*(code *)PTR_png_chunk_error_0005351c)();
  puStack_368 = puVar27 + 0x2f114;
  pbStack_35c = unaff_s0;
  pbStack_358 = unaff_s1;
  pcStack_354 = pcVar29;
  if ((*(uint *)(param_1 + 0x124) & 5) == 5) {
    *(uint *)(param_1 + 0x124) = *(uint *)(param_1 + 0x124) | 0x18;
    FUN_0002b068();
    if (pbVar19 != (byte *)0x0) {
      (**(code **)(puStack_368 + -0x7b54))(param_1,*(int *)(puStack_368 + -0x7fd4) + 0x69c);
      return;
    }
    return;
  }
  pcVar28 = *(code **)(puVar27 + 0x27640);
  pcVar30 = FUN_0002bf78;
  pbVar13 = (byte *)(*(int *)(puVar27 + 0x27140) + 0x68c);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2f078;
  piVar21 = *(int **)(pcVar28 + 0x27544);
  puStack_380 = puVar25;
  iStack_394 = *piVar21;
  pbVar24 = param_1;
  pbStack_3cc = unaff_s0;
  pcStack_3a0 = pcVar29;
  pbStack_38c = unaff_s0;
  pbStack_388 = unaff_s1;
  pbStack_384 = unaff_s2;
  pcStack_37c = pcVar30;
  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {
    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {
      if (pbVar19 == &DAT_00000004) {
        puVar25 = auStack_398;
        FUN_0002aef8();
        iVar15 = FUN_0002b068(param_1,0);
        if (iVar15 == 0) {
          pbVar19 = (byte *)FUN_0002acb0(puVar25);
          FUN_00018078(param_1,param_1 + 0x398);
          pbVar24 = param_1;
          FUN_00015834(param_1,pbVar13);
        }
      }
      else {
        FUN_0002b068();
        (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x69c);
      }
    }
    else {
      FUN_0002b068();
      (**(code **)(pcStack_3a0 + -0x7b54))(param_1,*(int *)(pcStack_3a0 + -0x7fd4) + 0x68c);
    }
    pcVar29 = pcStack_3a0;
    if (iStack_394 == *piVar21) {
      return;
    }
    (**(code **)(pcStack_3a0 + -0x7b6c))();
    pbStack_3cc = param_1;
    unaff_s2 = pbVar13;
  }
  pcVar28 = *(code **)(pcVar29 + -0x7ad4);
  pcVar30 = FUN_0002c0dc;
  puVar14 = (undefined1 *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2ef14;
  piVar22 = *(int **)(pcVar28 + 0x273e0);
  iStack_3d4 = *piVar22;
  pbVar13 = pbVar24;
  pbStack_404 = pbStack_3cc;
  pcStack_3e0 = pcVar29;
  piStack_3c8 = piVar21;
  pbStack_3c4 = unaff_s2;
  puStack_3c0 = puVar25;
  pbStack_3bc = param_2;
  pbStack_3b8 = param_3;
  pcStack_3b4 = pcVar30;
  if ((*(uint *)(pbVar24 + 0x124) & 1) != 0) {
    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {
      if ((puVar14 == (undefined1 *)0x0) || ((*(uint *)(puVar14 + 8) & 2) == 0)) {
        param_2 = (byte *)0x3;
        if (pbVar24[0x1ff] == 3) {
          pbVar23 = (byte *)0x8;
          if (pbVar19 == (byte *)0x3) goto LAB_0002c168;
LAB_0002c268:
          iVar15 = *(int *)(pcVar28 + 0x26f40);
        }
        else {
          param_2 = (byte *)(uint)pbVar24[0x203];
          pbVar23 = (byte *)(uint)pbVar24[0x200];
          if (param_2 != pbVar19) goto LAB_0002c268;
LAB_0002c168:
          iVar15 = *(int *)(pcVar28 + 0x26f40);
          if (param_2 < &DAT_00000005) {
            abStack_3d8[0] = (byte)pbVar23;
            pbVar19 = param_2;
            abStack_3d8[1] = abStack_3d8[0];
            abStack_3d8[2] = abStack_3d8[0];
            abStack_3d8[3] = abStack_3d8[0];
            FUN_0002aef8(pbVar24,abStack_3d8);
            iVar15 = FUN_0002b068(pbVar24,0);
            unaff_s2 = pbVar23;
            param_3 = abStack_3d8;
            if (iVar15 == 0) {
              if (param_2 == (byte *)0x0) {
LAB_0002c1f4:
                if ((pbVar24[0x1ff] & 2) == 0) {
                  pbVar24[599] = abStack_3d8[0];
                  pbVar24[0x254] = abStack_3d8[0];
                  pbVar24[0x255] = abStack_3d8[0];
                  pbVar24[0x256] = abStack_3d8[0];
                  pbVar24[600] = abStack_3d8[1];
                }
                else {
                  pbVar24[0x254] = abStack_3d8[0];
                  pbVar24[0x255] = abStack_3d8[1];
                  pbVar24[0x256] = abStack_3d8[2];
                  pbVar24[600] = abStack_3d8[3];
                }
                pbVar19 = pbVar24 + 0x254;
                pbVar13 = pbVar24;
                (**(code **)(pcStack_3e0 + -0x7b38))(pbVar24,puVar14);
              }
              else {
                if (((byte *)(uint)abStack_3d8[0] != (byte *)0x0) &&
                   (pbVar13 = abStack_3d8, (byte *)(uint)abStack_3d8[0] <= pbVar23)) {
                  param_2 = abStack_3d8 + (int)param_2;
                  do {
                    pbVar13 = pbVar13 + 1;
                    if (param_2 == pbVar13) goto LAB_0002c1f4;
                  } while (((byte *)(uint)*pbVar13 != (byte *)0x0) &&
                          ((byte *)(uint)*pbVar13 <= pbVar23));
                }
                pbVar13 = pbVar24;
                (**(code **)(pcStack_3e0 + -0x7b54))
                          (pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x69c);
              }
            }
            goto LAB_0002c230;
          }
        }
        pbStack_3a8 = pbVar19;
        (**(code **)(pcVar28 + 0x273c0))(pbVar24,iVar15 + 0x69c);
        pbVar19 = pbStack_3a8;
        FUN_0002b068(pbVar24,pbStack_3a8);
        unaff_s2 = pbVar23;
      }
      else {
        FUN_0002b068();
        (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + -0x1a18);
      }
    }
    else {
      FUN_0002b068();
      (**(code **)(pcStack_3e0 + -0x7b54))(pbVar24,*(int *)(pcStack_3e0 + -0x7fd4) + 0x68c);
    }
LAB_0002c230:
    pcVar29 = pcStack_3e0;
    if (iStack_3d4 == *piVar22) {
      return;
    }
    (**(code **)(pcStack_3e0 + -0x7b6c))();
    pbStack_404 = pbVar24;
  }
  pcVar28 = *(code **)(pcVar29 + -0x7ad4);
  pcVar30 = FUN_0002c348;
  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2eca8;
  piVar21 = *(int **)(pcVar28 + 0x27174);
  iStack_40c = *piVar21;
  pbVar24 = pbVar13;
  pbVar23 = pbStack_404;
  pcStack_458 = pcVar29;
  piStack_400 = piVar22;
  pbStack_3fc = unaff_s2;
  puStack_3f8 = puVar14;
  pcStack_3f4 = pcVar30;
  if ((*(uint *)(pbVar13 + 0x124) & 1) != 0) {
    if ((*(uint *)(pbVar13 + 0x124) & 6) == 0) {
      if (pbVar19 == (byte *)0x20) {
        FUN_0002aef8();
        iVar15 = FUN_0002b068(pbVar13,0);
        puVar14 = auStack_42c;
        if (iVar15 == 0) {
          iVar15 = FUN_0002acb0(auStack_42c);
          iStack_434 = iVar15;
          iVar8 = FUN_0002acb0(auStack_428);
          iStack_430 = iVar8;
          iVar9 = FUN_0002acb0(auStack_424);
          iStack_44c = iVar9;
          iVar4 = FUN_0002acb0(auStack_420);
          iStack_448 = iVar4;
          iVar5 = FUN_0002acb0(auStack_41c);
          iStack_444 = iVar5;
          iVar6 = FUN_0002acb0(auStack_418);
          iStack_440 = iVar6;
          iVar7 = FUN_0002acb0(auStack_414);
          iStack_43c = iVar7;
          iStack_438 = FUN_0002acb0(auStack_410);
          if (iVar15 == -1) {
            iVar15 = *(int *)(pcStack_458 + -0x7fd4);
          }
          else {
            iVar15 = *(int *)(pcStack_458 + -0x7fd4);
            if (((((iVar8 != -1) && (iVar9 != -1)) && (iVar4 != -1)) &&
                ((iVar5 != -1 && (iVar6 != -1)))) && ((iVar7 != -1 && (iStack_438 != -1)))) {
              uVar1 = *(ushort *)(pbVar13 + 0x3e2);
              pbVar24 = pbVar13;
              if (-1 < (short)uVar1) {
                if ((uVar1 & 0x10) == 0) {
                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x10;
                  pbVar19 = (byte *)&iStack_44c;
                  FUN_00017e00(pbVar13,pbVar13 + 0x398,pbVar19,1);
                  FUN_00015834(pbVar13,pbVar16);
                }
                else {
                  *(ushort *)(pbVar13 + 0x3e2) = uVar1 | 0x8000;
                  FUN_00015834(pbVar13,pbVar16);
                  (**(code **)(pcStack_458 + -0x7b54))
                            (pbVar13,*(int *)(pcStack_458 + -0x7fd4) + -0x1a18);
                }
              }
              goto LAB_0002c3d4;
            }
          }
          pbVar24 = pbVar13;
          (**(code **)(pcStack_458 + -0x7b54))(pbVar13,iVar15 + 0x70c);
        }
      }
      else {
        FUN_0002b068();
        (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x69c);
      }
    }
    else {
      FUN_0002b068();
      (**(code **)(pcStack_458 + -0x7b54))(pbVar13,*(int *)(pcStack_458 + -0x7fd4) + 0x68c);
    }
LAB_0002c3d4:
    pcVar29 = pcStack_458;
    if (iStack_40c == *piVar21) {
      return;
    }
    (**(code **)(pcStack_458 + -0x7b6c))();
    pbVar23 = pbVar13;
    unaff_s2 = pbVar16;
  }
  pcVar28 = *(code **)(pcVar29 + -0x7ad4);
  pcVar30 = FUN_0002c5dc;
  pbVar16 = (byte *)(*(int *)(pcVar29 + -0x7fd4) + 0x6a4);
  (*pcVar28)();
  pcVar29 = pcVar28 + 0x2ea14;
  pbVar13 = *(byte **)(pcVar28 + 0x26ee0);
  iStack_47c = *(int *)pbVar13;
  pcStack_488 = pcVar29;
  pbStack_478 = pbVar23;
  piStack_474 = piVar21;
  pbStack_470 = unaff_s2;
  pcStack_46c = pcVar30;
  if ((*(uint *)(pbVar24 + 0x124) & 1) == 0) {
    pbVar17 = (byte *)(*(int *)(pcVar28 + 0x26a40) + 0x6a4);
    (**(code **)(pcVar28 + 0x26f40))();
    pbVar11 = pbVar24;
  }
  else {
    pbVar11 = pbVar24;
    if ((*(uint *)(pbVar24 + 0x124) & 6) == 0) {
      if (pbVar19 == (byte *)0x1) {
        FUN_0002aef8();
        pbVar17 = (byte *)0x0;
        iVar15 = FUN_0002b068();
        if (iVar15 == 0) {
          uVar1 = *(ushort *)(pbVar24 + 0x3e2);
          if (-1 < (short)uVar1) {
            if ((uVar1 & 4) == 0) {
              pbVar19 = (byte *)(uint)bStack_47d;
              FUN_00018198(pbVar24,pbVar24 + 0x398);
              pbVar11 = pbVar24;
              pbVar17 = pbVar16;
              FUN_00015834();
            }
            else {
              *(ushort *)(pbVar24 + 0x3e2) = uVar1 | 0x8000;
              FUN_00015834(pbVar24,pbVar16);
              pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x71c);
              pbVar11 = pbVar24;
              (**(code **)(pcStack_488 + -0x7b54))();
            }
          }
        }
      }
      else {
        FUN_0002b068();
        pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x69c);
        (**(code **)(pcStack_488 + -0x7b54))();
      }
    }
    else {
      FUN_0002b068();
      pbVar17 = (byte *)(*(int *)(pcStack_488 + -0x7fd4) + 0x68c);
      (**(code **)(pcStack_488 + -0x7b54))();
    }
    pbVar23 = pbVar24;
    unaff_s2 = pbVar16;
    pcVar29 = pcStack_488;
    if (iStack_47c == *(int *)pbVar13) {
      return;
    }
  }
  pcVar29 = *(code **)(pcVar29 + -0x7b6c);
  pcVar28 = FUN_0002c770;
  (*pcVar29)();
  piVar21 = *(int **)(pcVar29 + 0x26d4c);
  pbVar16 = (byte *)(*(uint *)(pbVar11 + 0x124) & 1);
  iStack_4c4 = *piVar21;
  pbVar24 = unaff_s2;
  pbStack_4c0 = pbVar23;
  pbStack_4bc = pbVar13;
  pbStack_4b8 = unaff_s2;
  puStack_4b4 = puVar14;
  pbStack_4b0 = param_2;
  pbStack_4ac = param_3;
  pbStack_4a8 = unaff_s6;
  pbStack_4a4 = unaff_s7;
  pbStack_4a0 = unaff_s8;
  pcStack_49c = pcVar28;
  apbStack_490[0] = pbVar19;
  if (pbVar16 == (byte *)0x0) goto LAB_0002cd34;
  if ((*(uint *)(pbVar11 + 0x124) & 6) == 0) {
    if ((byte *)0xd < pbVar19) {
      if ((short)*(ushort *)(pbVar11 + 0x3e2) < 0) {
        FUN_0002b068();
        goto LAB_0002c8bc;
      }
      if ((*(ushort *)(pbVar11 + 0x3e2) & 4) != 0) {
        pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x71c);
LAB_0002c900:
        FUN_0002b068(pbVar11,apbStack_490[0]);
        *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
        FUN_00015834(pbVar11,pbVar17);
        goto LAB_0002c934;
      }
      pbVar13 = (byte *)0x51;
      if (pbVar19 < (byte *)0x51) {
        pbVar13 = pbVar19;
      }
      pbVar24 = abStack_99c;
      pbVar19 = pbVar13;
      FUN_0002aef8();
      apbStack_490[0] = apbStack_490[0] + -(int)pbVar13;
      if ((byte *)0xa < apbStack_490[0]) {
        pbVar23 = abStack_99c;
        if (abStack_99c[0] == 0) {
LAB_0002c974:
          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x748);
        }
        else {
          do {
            pbVar26 = pbVar16;
            pbVar23 = pbVar23 + 1;
            unaff_s6 = pbVar26 + 1;
            pbVar16 = pbVar26;
            if (*pbVar23 == 0) goto LAB_0002c86c;
            pbVar16 = pbVar26 + 1;
            if (pbVar16 == (byte *)0x50) goto LAB_0002c974;
          } while (pbVar13 != pbVar16);
          unaff_s6 = pbVar26 + 2;
LAB_0002c86c:
          if ((unaff_s6 < pbVar13) && (abStack_99c[(int)unaff_s6] == 0)) {
            iVar15 = FUN_0002a9cc(pbVar11,0x69434350);
            if (iVar15 != 0) {
              pbVar24 = *(byte **)(pbVar11 + 0x14c);
              pbVar19 = apbStack_490[0];
              goto LAB_0002ca50;
            }
            (**(code **)(pcVar29 + 0x26c24))(&bStack_948,0,0x84);
            pbVar19 = pbVar16 + 2;
            pbVar16 = pbVar13 + (-2 - (int)pbVar16);
            pbStack_9a0 = (byte *)0x84;
            *(byte **)(pbVar11 + 0x134) = pbVar24 + (int)pbVar19;
            *(byte **)(pbVar11 + 0x138) = pbVar16;
            if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {
              iVar15 = *(int *)(pcVar29 + 0x26a74);
              *(byte **)(pbVar11 + 0x140) = &bStack_948;
              pbVar11[0x144] = 0;
              pbVar11[0x145] = 0;
              pbVar11[0x146] = 0;
              pbVar11[0x147] = 0;
              FUN_0002b83c(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);
              if (pbStack_9a0 == (byte *)0x0) {
                pbStack_9b4 = pbVar11 + 0x398;
                pbStack_9c0 = (byte *)((uint)bStack_948 * 0x1000000 + (uint)bStack_947 * 0x10000 +
                                       (uint)bStack_945 + (uint)bStack_946 * 0x100);
                pbVar19 = pbVar24;
                iVar8 = FUN_000158a4(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0);
                if ((iVar8 != 0) &&
                   (pbVar19 = pbVar24,
                   iVar8 = FUN_0001596c(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,&bStack_948,
                                        pbVar11[0x1ff]), iVar8 != 0)) {
                  pbVar19 = (byte *)0x2;
                  pbVar16 = (byte *)FUN_0002ab84(pbVar11,pbStack_9c0,2);
                  if (pbVar16 == (byte *)0x0) {
                    iVar15 = *(int *)(pcVar29 + 0x268ac);
                    pbVar11[0x130] = 0;
                    pbVar11[0x131] = 0;
                    pbVar11[0x132] = 0;
                    pbVar11[0x133] = 0;
                    pbVar24 = (byte *)(iVar15 + -0x184);
                    goto LAB_0002c900;
                  }
                  pbVar19 = pbVar16;
                  pbVar13 = &bStack_948;
                  do {
                    pbVar23 = pbVar13 + 0x10;
                    uVar20 = *(undefined4 *)(pbVar13 + 4);
                    uVar18 = *(undefined4 *)(pbVar13 + 8);
                    uVar12 = *(undefined4 *)(pbVar13 + 0xc);
                    *(undefined4 *)pbVar19 = *(undefined4 *)pbVar13;
                    *(undefined4 *)(pbVar19 + 4) = uVar20;
                    *(undefined4 *)(pbVar19 + 8) = uVar18;
                    *(undefined4 *)(pbVar19 + 0xc) = uVar12;
                    pbVar19 = pbVar19 + 0x10;
                    pbVar13 = pbVar23;
                  } while (pbVar23 != &bStack_8c8);
                  *(undefined4 *)pbVar19 = *(undefined4 *)pbVar23;
                  iVar8 = (uint)bStack_8c8 * 0x1000000 + (uint)bStack_8c7 * 0x10000 +
                          (uint)bStack_8c5 + (uint)bStack_8c6 * 0x100;
                  pbVar13 = (byte *)(iVar8 * 0xc);
                  pbStack_9a0 = pbVar13;
                  if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {
                    *(byte **)(pbVar11 + 0x140) = pbVar16 + 0x84;
                    pbVar11[0x144] = 0;
                    pbVar11[0x145] = 0;
                    pbVar11[0x146] = 0;
                    pbVar11[0x147] = 0;
                    (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,0);
                  }
                  else {
                    *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;
                  }
                  if (pbStack_9a0 != (byte *)0x0) goto LAB_0002ca44;
                  pbVar19 = pbVar24;
                  iVar9 = FUN_00015dd8(pbVar11,pbStack_9b4,pbVar24,pbStack_9c0,pbVar16);
                  if (iVar9 != 0) {
                    pbStack_9a0 = pbStack_9c0 + iVar8 * -0xc + -0x84;
                    if (*(int *)(pbVar11 + 0x130) == *(int *)(pbVar11 + 0x1cc)) {
                      *(byte **)(pbVar11 + 0x140) = pbVar16 + (int)(pbVar13 + 0x84);
                      pbVar11[0x144] = 0;
                      pbVar11[0x145] = 0;
                      pbVar11[0x146] = 0;
                      pbVar11[0x147] = 0;
                      (*(code *)(iVar15 + -0x47c4))(pbVar11,auStack_8c4,apbStack_490,&pbStack_9a0,1)
                      ;
                    }
                    else {
                      *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;
                    }
                    pbVar19 = apbStack_490[0];
                    if (apbStack_490[0] == (byte *)0x0) {
                      if (pbStack_9a0 == (byte *)0x0) goto LAB_0002cd68;
                      goto LAB_0002ce38;
                    }
                    pbVar13 = pbStack_9a0;
                    if (*(int *)(pbVar11 + 0x128) << 0xb < 0) goto LAB_0002cd44;
                    iVar15 = *(int *)(pcVar29 + 0x268ac);
                    pbVar11[0x130] = 0;
                    pbVar11[0x131] = 0;
                    pbVar11[0x132] = 0;
                    pbVar11[0x133] = 0;
                    pbVar24 = (byte *)(iVar15 + 0x674);
                    goto LAB_0002c900;
                  }
                }
                pbVar11[0x130] = 0;
                pbVar11[0x131] = 0;
                pbVar11[0x132] = 0;
                pbVar11[0x133] = 0;
                FUN_0002b068(pbVar11,apbStack_490[0]);
                *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
                FUN_00015834(pbVar11,pbVar17);
                unaff_s2 = pbVar24;
                goto LAB_0002c8bc;
              }
            }
            else {
              *(int *)(pbVar11 + 0x14c) = *(int *)(pcVar29 + 0x268ac) + 0x660;
            }
LAB_0002ca44:
            pbVar24 = *(byte **)(pbVar11 + 0x14c);
            pbVar11[0x130] = 0;
            pbVar11[0x131] = 0;
            pbVar11[0x132] = 0;
            pbVar11[0x133] = 0;
            pbVar19 = apbStack_490[0];
            goto LAB_0002ca50;
          }
          pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + 0x730);
        }
        goto LAB_0002c900;
      }
    }
    FUN_0002b068();
    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x237c);
    unaff_s2 = pbVar24;
  }
  else {
    FUN_0002b068();
    (**(code **)(pcVar29 + 0x26d2c))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x68c);
  }
LAB_0002c8bc:
  while( true ) {
    if (iStack_4c4 == *piVar21) {
      return;
    }
    (**(code **)(pcVar29 + 0x26d14))();
    pbVar13 = pbVar17;
    pbVar24 = unaff_s2;
    unaff_s8 = pbVar11;
LAB_0002cd34:
    pbVar11 = unaff_s8;
    pbVar17 = pbVar13;
    pbVar13 = (byte *)(**(code **)(pcVar29 + 0x26dac))();
LAB_0002cd44:
    if (pbVar13 != (byte *)0x0) goto LAB_0002ce38;
    (**(code **)(pcVar29 + 0x26bf8))(pbVar11,*(int *)(pcVar29 + 0x268ac) + 0x674);
LAB_0002cd68:
    FUN_0002b068(pbVar11,apbStack_490[0]);
    pbVar19 = pbVar16;
    FUN_0001839c(pbVar11,pbStack_9b4,pbVar16,*(undefined4 *)(pbVar11 + 0x164));
    if (pbVar17 != (byte *)0x0) break;
LAB_0002ce24:
    pbVar11[0x130] = 0;
    pbVar11[0x131] = 0;
    pbVar11[0x132] = 0;
    pbVar11[0x133] = 0;
    unaff_s2 = pbVar24;
  }
  pbVar19 = (byte *)0x10;
  (**(code **)(pcVar29 + 0x26bd0))(pbVar11,pbVar17,0x10,0);
  iVar15 = FUN_0001c240(pbVar11,unaff_s6);
  *(int *)(pbVar17 + 0x74) = iVar15;
  if (iVar15 != 0) {
    (**(code **)(pcVar29 + 0x26d54))(iVar15,pbVar24,unaff_s6);
    uVar10 = *(uint *)(pbVar17 + 0xf4);
    uVar3 = *(uint *)(pbVar17 + 8);
    *(byte **)(pbVar17 + 0x78) = pbVar16;
    *(byte **)(pbVar17 + 0x7c) = pbStack_9c0;
    pbVar11[0x374] = 0;
    pbVar11[0x375] = 0;
    pbVar11[0x376] = 0;
    pbVar11[0x377] = 0;
    *(uint *)(pbVar17 + 0xf4) = uVar10 | 0x10;
    *(uint *)(pbVar17 + 8) = uVar3 | 0x1000;
    pbVar19 = pbStack_9c0;
    FUN_00015834(pbVar11,pbVar17);
    goto LAB_0002ce24;
  }
  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
  FUN_00015834(pbVar11,pbVar17);
  pbVar11[0x130] = 0;
  pbVar11[0x131] = 0;
  pbVar11[0x132] = 0;
  pbVar11[0x133] = 0;
  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
  FUN_00015834(pbVar11,pbVar17);
  pbVar24 = (byte *)(*(int *)(pcVar29 + 0x268ac) + -0x184);
LAB_0002c934:
  pcVar28 = *(code **)(pcVar29 + 0x26d2c);
  goto LAB_0002c938;
LAB_0002ce38:
  pbVar24 = *(byte **)(pbVar11 + 0x14c);
  pbVar11[0x130] = 0;
  pbVar11[0x131] = 0;
  pbVar11[0x132] = 0;
  pbVar11[0x133] = 0;
LAB_0002ca50:
  FUN_0002b068(pbVar11,pbVar19);
  *(ushort *)(pbVar11 + 0x3e2) = *(ushort *)(pbVar11 + 0x3e2) | 0x8000;
  FUN_00015834(pbVar11,pbVar17);
  unaff_s2 = pbVar24;
  if (pbVar24 != (byte *)0x0) {
    pcVar28 = *(code **)(pcVar29 + 0x26d2c);
LAB_0002c938:
    (*pcVar28)(pbVar11,pbVar24);
    unaff_s2 = pbVar24;
  }
  goto LAB_0002c8bc;
}

