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

{
  ushort uVar1;
  png_uint_32 *ppVar2;
  undefined *puVar3;
  int iVar4;
  png_fixed_point pVar5;
  png_fixed_point pVar6;
  png_fixed_point pVar7;
  png_fixed_point pVar8;
  png_fixed_point pVar9;
  png_fixed_point pVar10;
  png_fixed_point pVar11;
  char *pcVar12;
  int iVar13;
  png_int_32 *ppVar14;
  png_charp pcVar15;
  uint uVar16;
  uint uVar17;
  png_structrp png_ptr_00;
  png_structrp ppVar18;
  png_uint_32 pVar19;
  png_const_bytep buf_00;
  png_inforp ppVar20;
  png_inforp info_ptr_00;
  png_uint_32 pVar21;
  png_inforp ppVar22;
  png_uint_32 pVar23;
  int iVar24;
  png_structrp unaff_s0;
  int *piVar25;
  png_inforp ppVar26;
  png_inforp unaff_s2;
  png_structrp unaff_s3;
  png_fixed_point *profile;
  png_fixed_point *ppVar27;
  png_inforp profile_00;
  png_uint_16p *read_buffer;
  png_inforp unaff_s6;
  undefined *puVar28;
  code *pcVar29;
  undefined *puVar30;
  code *finish;
  png_structrp unaff_s8;
  code *pcVar31;
  png_alloc_size_t *in_stack_fffffa24;
  png_inforp ppStack_5d0;
  png_colorspacerp ppStack_5c4;
  png_int_32 *ppStack_5b0;
  png_info apStack_5ac [3];
  int iStack_d4;
  png_structrp ppStack_d0;
  png_inforp ppStack_cc;
  png_inforp ppStack_c8;
  png_structrp ppStack_c4;
  png_inforp appStack_a0 [2];
  undefined *puStack_98;
  byte bStack_8d;
  png_uint_32 pStack_8c;
  png_structrp ppStack_88;
  undefined *puStack_84;
  png_inforp ppStack_80;
  code *pcStack_7c;
  png_xy xy;
  png_byte buf [32];
  
  puVar3 = PTR___stack_chk_guard_000534bc;
  iVar24 = *(int *)PTR___stack_chk_guard_000534bc;
  png_ptr_00 = png_ptr;
  if ((png_ptr->mode & 1) != 0) {
    if ((png_ptr->mode & 6) == 0) {
      if (length == 0x20) {
        unaff_s3 = (png_structrp)buf;
        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);
        buf_00 = (png_const_bytep)0x0;
        iVar4 = png_crc_finish(png_ptr,0);
        if (iVar4 == 0) {
          pVar5 = png_get_fixed_point(unaff_s3,buf_00);
          xy.whitex = pVar5;
          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);
          xy.whitey = pVar6;
          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);
          xy.redx = pVar7;
          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);
          xy.redy = pVar8;
          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);
          xy.greenx = pVar9;
          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);
          xy.greeny = pVar10;
          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);
          xy.bluex = pVar11;
          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);
          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||
              ((pVar8 == -1 || (pVar9 == -1)))) ||
             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {
            png_ptr_00 = png_ptr;
            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);
          }
          else {
            uVar1 = (png_ptr->colorspace).flags;
            png_ptr_00 = png_ptr;
            if (-1 < (short)uVar1) {
              if ((uVar1 & 0x10) == 0) {
                (png_ptr->colorspace).flags = uVar1 | 0x10;
                length = (png_uint_32)&xy;
                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);
                png_colorspace_sync(png_ptr,info_ptr);
              }
              else {
                (png_ptr->colorspace).flags = uVar1 | 0x8000;
                png_colorspace_sync(png_ptr,info_ptr);
                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);
              }
            }
          }
        }
      }
      else {
        png_crc_finish(png_ptr,length);
        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);
      }
    }
    else {
      png_crc_finish(png_ptr,length);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);
    }
    if (iVar24 == *(int *)puVar3) {
      return;
    }
    (*(code *)PTR___stack_chk_fail_00053484)();
    unaff_s0 = png_ptr;
    unaff_s2 = info_ptr;
  }
  pcVar31 = png_handle_sRGB;
  ppVar20 = (png_inforp)(PTR_s_nt_0005301c + 0x6a4);
  puVar28 = PTR_png_chunk_error_0005351c;
  (*(code *)PTR_png_chunk_error_0005351c)();
  puVar30 = puVar28 + 0x2ea14;
  puStack_84 = puVar3;
  ppVar26 = *(png_inforp *)(puVar28 + 0x26ee0);
  pStack_8c = ppVar26->width;
  puStack_98 = puVar30;
  ppStack_88 = unaff_s0;
  ppStack_80 = unaff_s2;
  pcStack_7c = pcVar31;
  if ((png_ptr_00->mode & 1) == 0) {
    info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4);
    (**(code **)(puVar28 + 0x26f40))();
    ppVar18 = png_ptr_00;
  }
  else {
    ppVar18 = png_ptr_00;
    if ((png_ptr_00->mode & 6) == 0) {
      if ((png_inforp)length == (png_inforp)&DAT_00000001) {
        png_crc_read(png_ptr_00,&bStack_8d,1);
        info_ptr_00 = (png_inforp)0x0;
        iVar24 = png_crc_finish(png_ptr_00,0);
        if (iVar24 == 0) {
          uVar1 = (png_ptr_00->colorspace).flags;
          if (-1 < (short)uVar1) {
            if ((uVar1 & 4) == 0) {
              length = (png_uint_32)bStack_8d;
              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);
              ppVar18 = png_ptr_00;
              info_ptr_00 = ppVar20;
              png_colorspace_sync(png_ptr_00,ppVar20);
            }
            else {
              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;
              png_colorspace_sync(png_ptr_00,ppVar20);
              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);
              ppVar18 = png_ptr_00;
              (**(code **)(puStack_98 + -0x7b54))();
            }
          }
        }
      }
      else {
        png_crc_finish(png_ptr_00,length);
        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);
        (**(code **)(puStack_98 + -0x7b54))();
      }
    }
    else {
      png_crc_finish(png_ptr_00,length);
      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);
      (**(code **)(puStack_98 + -0x7b54))();
    }
    unaff_s0 = png_ptr_00;
    unaff_s2 = ppVar20;
    puVar30 = puStack_98;
    if (pStack_8c == ppVar26->width) {
      return;
    }
  }
  pcVar29 = *(code **)(puVar30 + -0x7b6c);
  (*pcVar29)();
  finish = pcVar29 + 0x2e880;
  piVar25 = *(int **)(pcVar29 + 0x26d4c);
  profile_00 = (png_inforp)(ppVar18->mode & 1);
  iStack_d4 = *piVar25;
  ppVar20 = unaff_s2;
  pcVar31 = finish;
  ppStack_d0 = unaff_s0;
  ppStack_cc = ppVar26;
  ppStack_c8 = unaff_s2;
  ppStack_c4 = unaff_s3;
  appStack_a0[0] = (png_inforp)length;
  if (profile_00 == (png_inforp)0x0) goto LAB_0002cd34;
  if ((ppVar18->mode & 6) != 0) {
    png_crc_finish(ppVar18,length);
    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c);
    goto LAB_0002c8bc;
  }
  if (length < (png_inforp)0xe) {
    png_crc_finish(ppVar18,length);
    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c);
    goto LAB_0002c8bc;
  }
  uVar1 = (ppVar18->colorspace).flags;
  if ((short)uVar1 < 0) {
    png_crc_finish(ppVar18,length);
    goto LAB_0002c8bc;
  }
  if ((uVar1 & 4) == 0) {
    ppVar26 = (png_inforp)0x51;
    if (length < (png_inforp)0x51) {
      ppVar26 = (png_inforp)length;
    }
    ppVar20 = apStack_5ac;
    ppVar22 = ppVar26;
    png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26);
    appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26);
    if (appStack_a0[0] < (png_inforp)0xb) {
      FUN_0002c94c(ppVar18);
      return;
    }
    pcVar12 = (char *)((int)&apStack_5ac[0].width + 1);
    length = (png_uint_32)ppVar22;
    if (apStack_5ac[0].width._0_1_ == '\0') {
LAB_0002c974:
      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);
    }
    else {
      do {
        ppVar22 = profile_00;
        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);
        profile_00 = ppVar22;
        if (*pcVar12 == '\0') goto LAB_0002c86c;
        profile_00 = (png_inforp)((int)&ppVar22->width + 1);
        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;
        pcVar12 = pcVar12 + 1;
      } while (ppVar26 != profile_00);
      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);
LAB_0002c86c:
      if ((unaff_s6 < ppVar26) &&
         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {
        iVar24 = png_inflate_claim(ppVar18,0x69434350);
        if (iVar24 != 0) {
          ppVar26 = (png_inforp)(ppVar18->zstream).msg;
          length = (png_uint_32)appStack_a0[0];
          goto LAB_0002ca50;
        }
        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;
        (**(code **)(finish + -0x7c5c))(profile,0,0x84);
        ppVar2 = &profile_00->width;
        pVar21 = ppVar18->zowner;
        pVar19 = ppVar18->chunk_name;
        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));
        ppStack_5b0 = (png_int_32 *)0x84;
        (ppVar18->zstream).next_in =
             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);
        (ppVar18->zstream).avail_in = (uInt)profile_00;
        if (pVar21 == pVar19) {
          iVar24 = *(int *)(finish + -0x7e0c);
          (ppVar18->zstream).next_out = (Bytef *)profile;
          read_buffer = &apStack_5ac[0].hist;
          (ppVar18->zstream).avail_out = 0;
          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,
                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);
          if (ppStack_5b0 == (png_int_32 *)0x0) {
            ppStack_5c4 = &ppVar18->colorspace;
            ppStack_5d0 = (png_inforp)
                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +
                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +
                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +
                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);
            length = (png_uint_32)ppVar20;
            iVar4 = png_icc_check_length
                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0
                              );
            if ((iVar4 == 0) ||
               (length = (png_uint_32)ppVar20,
               iVar4 = png_icc_check_header
                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,
                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,
                                  (uint)ppVar18->color_type), iVar4 == 0)) {
LAB_0002caf4:
              ppVar18->zowner = 0;
              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);
              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
              png_colorspace_sync(ppVar18,info_ptr_00);
              unaff_s2 = ppVar20;
              goto LAB_0002c8bc;
            }
            length = (png_uint_32)&DAT_00000002;
            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);
            if (profile_00 == (png_inforp)0x0) {
              iVar24 = *(int *)(finish + -0x7fd4);
              ppVar18->zowner = 0;
              ppVar26 = (png_inforp)(iVar24 + -0x184);
            }
            else {
              ppVar26 = profile_00;
              do {
                ppVar27 = profile + 4;
                pVar23 = profile[1];
                pVar21 = profile[2];
                pVar19 = profile[3];
                ppVar26->width = *profile;
                ppVar26->height = pVar23;
                ppVar26->valid = pVar21;
                ppVar26->rowbytes = pVar19;
                ppVar26 = (png_inforp)&ppVar26->palette;
                profile = ppVar27;
              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);
              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;
              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +
                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +
                      (uint)(byte)apStack_5ac[0].eXIf_buf +
                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;
              ppVar14 = (png_int_32 *)(iVar4 * 0xc);
              ppStack_5b0 = ppVar14;
              if (ppVar18->zowner == ppVar18->chunk_name) {
                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;
                (ppVar18->zstream).avail_out = 0;
                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);
              }
              else {
                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);
              }
              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;
              length = (png_uint_32)ppVar20;
              iVar13 = png_icc_check_tag_table
                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,
                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);
              if (iVar13 == 0) goto LAB_0002caf4;
              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);
              if (ppVar18->zowner != ppVar18->chunk_name) {
                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);
                FUN_0002ccd8();
                return;
              }
              (ppVar18->zstream).next_out =
                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));
              (ppVar18->zstream).avail_out = 0;
              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);
              length = (png_uint_32)appStack_a0[0];
              pcVar31 = finish;
              if (appStack_a0[0] == (png_inforp)0x0) {
                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;
                goto LAB_0002ce38;
              }
              ppVar14 = ppStack_5b0;
              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;
              iVar24 = *(int *)(finish + -0x7fd4);
              ppVar18->zowner = 0;
              ppVar26 = (png_inforp)(iVar24 + 0x674);
            }
            goto LAB_0002c900;
          }
        }
        else {
          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);
        }
LAB_0002ca44:
        ppVar26 = (png_inforp)(ppVar18->zstream).msg;
        ppVar18->zowner = 0;
        length = (png_uint_32)appStack_a0[0];
        goto LAB_0002ca50;
      }
      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);
    }
  }
  else {
    ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c);
  }
LAB_0002c900:
  png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);
  (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
  png_colorspace_sync(ppVar18,info_ptr_00);
LAB_0002c934:
  pcVar31 = *(code **)(finish + -0x7b54);
  do {
    (*pcVar31)(ppVar18,ppVar26);
    unaff_s2 = ppVar26;
LAB_0002c8bc:
    do {
      while( true ) {
        if (iStack_d4 == *piVar25) {
          return;
        }
        pcVar31 = finish;
        (**(code **)(finish + -0x7b6c))();
        ppVar26 = info_ptr_00;
        ppVar20 = unaff_s2;
        unaff_s8 = ppVar18;
LAB_0002cd34:
        ppVar18 = unaff_s8;
        info_ptr_00 = ppVar26;
        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();
LAB_0002cd44:
        if (ppVar14 != (png_int_32 *)0x0) break;
        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);
        finish = pcVar31;
LAB_0002cd68:
        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);
        length = (png_uint_32)profile_00;
        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);
        if (info_ptr_00 != (png_inforp)0x0) {
          length = 0x10;
          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);
          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);
          info_ptr_00->iccp_name = pcVar15;
          if (pcVar15 == (png_charp)0x0) {
            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
            png_colorspace_sync(ppVar18,info_ptr_00);
            uVar1 = (ppVar18->colorspace).flags;
            ppVar18->zowner = 0;
            (ppVar18->colorspace).flags = uVar1 | 0x8000;
            png_colorspace_sync(ppVar18,info_ptr_00);
            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);
            goto LAB_0002c934;
          }
          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);
          uVar17 = info_ptr_00->free_me;
          uVar16 = info_ptr_00->valid;
          info_ptr_00->iccp_profile = (png_bytep)profile_00;
          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;
          ppVar18->read_buffer = (png_bytep)0x0;
          info_ptr_00->free_me = uVar17 | 0x10;
          info_ptr_00->valid = uVar16 | 0x1000;
          length = (png_uint_32)ppStack_5d0;
          png_colorspace_sync(ppVar18,info_ptr_00);
        }
        ppVar18->zowner = 0;
        unaff_s2 = ppVar20;
      }
LAB_0002ce38:
      ppVar26 = (png_inforp)(ppVar18->zstream).msg;
      ppVar18->zowner = 0;
      finish = pcVar31;
LAB_0002ca50:
      png_crc_finish(ppVar18,length);
      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
      png_colorspace_sync(ppVar18,info_ptr_00);
      unaff_s2 = ppVar26;
    } while (ppVar26 == (png_inforp)0x0);
    pcVar31 = *(code **)(finish + -0x7b54);
  } while( true );
}



void FUN_0002c348(int param_1,int *param_2,int *param_3)

{
  ushort uVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  char *pcVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int *piVar11;
  int *piVar12;
  int iVar13;
  int iVar14;
  int unaff_s0;
  int *piVar15;
  int *piVar16;
  int *unaff_s2;
  undefined1 *unaff_s3;
  byte *pbVar17;
  byte *pbVar18;
  int *piVar19;
  int *piVar20;
  int *unaff_s6;
  undefined *puVar21;
  code *pcVar22;
  undefined *puVar23;
  int unaff_s8;
  code *pcVar24;
  int *piStack_5d0;
  int iStack_5c4;
  int *piStack_5b0;
  undefined4 uStack_5ac;
  byte bStack_558;
  byte bStack_557;
  byte bStack_556;
  byte bStack_555;
  undefined4 auStack_554 [31];
  byte bStack_4d8;
  byte bStack_4d7;
  byte bStack_4d6;
  byte bStack_4d5;
  undefined1 auStack_4d4 [1024];
  int iStack_d4;
  int iStack_d0;
  int *piStack_cc;
  int *piStack_c8;
  undefined1 *puStack_c4;
  int *apiStack_a0 [2];
  undefined *puStack_98;
  byte bStack_8d;
  int iStack_8c;
  int iStack_88;
  undefined *puStack_84;
  int *piStack_80;
  code *pcStack_7c;
  int local_5c;
  int local_58;
  int local_54;
  int local_50;
  int local_4c;
  int local_48;
  int local_44;
  int local_40;
  undefined1 auStack_3c [4];
  undefined1 auStack_38 [4];
  undefined1 auStack_34 [4];
  undefined1 auStack_30 [4];
  undefined1 auStack_2c [4];
  undefined1 auStack_28 [4];
  undefined1 auStack_24 [4];
  undefined1 auStack_20 [4];
  int local_1c;
  
  puVar6 = PTR___stack_chk_guard_000534bc;
  local_1c = *(int *)PTR___stack_chk_guard_000534bc;
  iVar8 = param_1;
  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {
    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {
      if (param_3 == (int *)0x20) {
        unaff_s3 = auStack_3c;
        FUN_0002aef8(param_1,unaff_s3);
        iVar2 = FUN_0002b068(param_1,0);
        if (iVar2 == 0) {
          iVar8 = FUN_0002acb0(unaff_s3);
          local_44 = iVar8;
          iVar2 = FUN_0002acb0(auStack_38);
          local_40 = iVar2;
          iVar7 = FUN_0002acb0(auStack_34);
          local_5c = iVar7;
          iVar13 = FUN_0002acb0(auStack_30);
          local_58 = iVar13;
          iVar14 = FUN_0002acb0(auStack_2c);
          local_54 = iVar14;
          iVar3 = FUN_0002acb0(auStack_28);
          local_50 = iVar3;
          iVar4 = FUN_0002acb0(auStack_24);
          local_4c = iVar4;
          local_48 = FUN_0002acb0(auStack_20);
          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||
              ((iVar13 == -1 || (iVar14 == -1)))) ||
             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {
            iVar8 = param_1;
            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);
          }
          else {
            uVar1 = *(ushort *)(param_1 + 0x3e2);
            iVar8 = param_1;
            if (-1 < (short)uVar1) {
              if ((uVar1 & 0x10) == 0) {
                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;
                param_3 = &local_5c;
                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);
                FUN_00015834(param_1,param_2);
              }
              else {
                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;
                FUN_00015834(param_1,param_2);
                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);
              }
            }
          }
        }
      }
      else {
        FUN_0002b068(param_1,param_3);
        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);
      }
    }
    else {
      FUN_0002b068(param_1,param_3);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);
    }
    if (local_1c == *(int *)puVar6) {
      return;
    }
    (*(code *)PTR___stack_chk_fail_00053484)();
    unaff_s0 = param_1;
    unaff_s2 = param_2;
  }
  pcVar24 = FUN_0002c5dc;
  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);
  puVar21 = PTR_png_chunk_error_0005351c;
  (*(code *)PTR_png_chunk_error_0005351c)();
  puVar23 = puVar21 + 0x2ea14;
  puStack_84 = puVar6;
  piVar16 = *(int **)(puVar21 + 0x26ee0);
  iStack_8c = *piVar16;
  puStack_98 = puVar23;
  iStack_88 = unaff_s0;
  piStack_80 = unaff_s2;
  pcStack_7c = pcVar24;
  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {
    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);
    (**(code **)(puVar21 + 0x26f40))();
    iVar2 = iVar8;
  }
  else {
    iVar2 = iVar8;
    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {
      if (param_3 == (int *)0x1) {
        FUN_0002aef8();
        piVar12 = (int *)0x0;
        iVar7 = FUN_0002b068();
        if (iVar7 == 0) {
          uVar1 = *(ushort *)(iVar8 + 0x3e2);
          if (-1 < (short)uVar1) {
            if ((uVar1 & 4) == 0) {
              param_3 = (int *)(uint)bStack_8d;
              FUN_00018198(iVar8,iVar8 + 0x398);
              iVar2 = iVar8;
              piVar12 = piVar11;
              FUN_00015834();
            }
            else {
              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;
              FUN_00015834(iVar8,piVar11);
              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);
              iVar2 = iVar8;
              (**(code **)(puStack_98 + -0x7b54))();
            }
          }
        }
      }
      else {
        FUN_0002b068();
        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);
        (**(code **)(puStack_98 + -0x7b54))();
      }
    }
    else {
      FUN_0002b068();
      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);
      (**(code **)(puStack_98 + -0x7b54))();
    }
    unaff_s0 = iVar8;
    unaff_s2 = piVar11;
    puVar23 = puStack_98;
    if (iStack_8c == *piVar16) {
      return;
    }
  }
  pcVar24 = *(code **)(puVar23 + -0x7b6c);
  (*pcVar24)();
  piVar15 = *(int **)(pcVar24 + 0x26d4c);
  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);
  iStack_d4 = *piVar15;
  piVar11 = unaff_s2;
  iStack_d0 = unaff_s0;
  piStack_cc = piVar16;
  piStack_c8 = unaff_s2;
  puStack_c4 = unaff_s3;
  apiStack_a0[0] = param_3;
  if (piVar19 == (int *)0x0) goto LAB_0002cd34;
  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {
    if ((int *)0xd < param_3) {
      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {
        FUN_0002b068();
        goto LAB_0002c8bc;
      }
      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {
        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);
LAB_0002c900:
        FUN_0002b068(iVar2,apiStack_a0[0]);
        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
        FUN_00015834(iVar2,piVar12);
        goto LAB_0002c934;
      }
      piVar16 = (int *)0x51;
      if (param_3 < (int *)0x51) {
        piVar16 = param_3;
      }
      piVar11 = &uStack_5ac;
      param_3 = piVar16;
      FUN_0002aef8();
      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);
      if ((int *)0xa < apiStack_a0[0]) {
        pcVar5 = (char *)((int)&uStack_5ac + 1);
        if (uStack_5ac._0_1_ == '\0') {
LAB_0002c974:
          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);
        }
        else {
          do {
            piVar20 = piVar19;
            unaff_s6 = (int *)((int)piVar20 + 1);
            piVar19 = piVar20;
            if (*pcVar5 == '\0') goto LAB_0002c86c;
            piVar19 = (int *)((int)piVar20 + 1);
            if (piVar19 == (int *)0x50) goto LAB_0002c974;
            pcVar5 = pcVar5 + 1;
          } while (piVar16 != piVar19);
          unaff_s6 = (int *)((int)piVar20 + 2);
LAB_0002c86c:
          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {
            iVar8 = FUN_0002a9cc(iVar2,0x69434350);
            if (iVar8 != 0) {
              piVar16 = *(int **)(iVar2 + 0x14c);
              param_3 = apiStack_a0[0];
              goto LAB_0002ca50;
            }
            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);
            puVar6 = (undefined *)((int)piVar19 + 2);
            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));
            piStack_5b0 = (int *)0x84;
            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);
            *(int **)(iVar2 + 0x138) = piVar19;
            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {
              iVar8 = *(int *)(pcVar24 + 0x26a74);
              *(byte **)(iVar2 + 0x140) = &bStack_558;
              *(undefined4 *)(iVar2 + 0x144) = 0;
              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);
              if (piStack_5b0 == (int *)0x0) {
                iStack_5c4 = iVar2 + 0x398;
                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +
                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);
                param_3 = piVar11;
                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);
                if ((iVar7 != 0) &&
                   (param_3 = piVar11,
                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,
                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {
                  param_3 = (int *)0x2;
                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);
                  if (piVar19 == (int *)0x0) {
                    iVar8 = *(int *)(pcVar24 + 0x268ac);
                    *(undefined4 *)(iVar2 + 0x130) = 0;
                    piVar16 = (int *)(iVar8 + -0x184);
                    goto LAB_0002c900;
                  }
                  piVar16 = piVar19;
                  pbVar17 = &bStack_558;
                  do {
                    pbVar18 = pbVar17 + 0x10;
                    iVar14 = *(int *)(pbVar17 + 4);
                    iVar13 = *(int *)(pbVar17 + 8);
                    iVar7 = *(int *)(pbVar17 + 0xc);
                    *piVar16 = *(int *)pbVar17;
                    piVar16[1] = iVar14;
                    piVar16[2] = iVar13;
                    piVar16[3] = iVar7;
                    piVar16 = piVar16 + 4;
                    pbVar17 = pbVar18;
                  } while (pbVar18 != &bStack_4d8);
                  *piVar16 = *(int *)pbVar18;
                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +
                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;
                  piVar16 = (int *)(iVar7 * 0xc);
                  piStack_5b0 = piVar16;
                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {
                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;
                    *(undefined4 *)(iVar2 + 0x144) = 0;
                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);
                  }
                  else {
                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;
                  }
                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;
                  param_3 = piVar11;
                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);
                  if (iVar13 != 0) {
                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;
                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {
                      *(undefined **)(iVar2 + 0x140) =
                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));
                      *(undefined4 *)(iVar2 + 0x144) = 0;
                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);
                    }
                    else {
                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;
                    }
                    param_3 = apiStack_a0[0];
                    if (apiStack_a0[0] == (int *)0x0) {
                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;
                      goto LAB_0002ce38;
                    }
                    piVar16 = piStack_5b0;
                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;
                    iVar8 = *(int *)(pcVar24 + 0x268ac);
                    *(undefined4 *)(iVar2 + 0x130) = 0;
                    piVar16 = (int *)(iVar8 + 0x674);
                    goto LAB_0002c900;
                  }
                }
                *(undefined4 *)(iVar2 + 0x130) = 0;
                FUN_0002b068(iVar2,apiStack_a0[0]);
                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
                FUN_00015834(iVar2,piVar12);
                unaff_s2 = piVar11;
                goto LAB_0002c8bc;
              }
            }
            else {
              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;
            }
LAB_0002ca44:
            piVar16 = *(int **)(iVar2 + 0x14c);
            *(undefined4 *)(iVar2 + 0x130) = 0;
            param_3 = apiStack_a0[0];
            goto LAB_0002ca50;
          }
          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);
        }
        goto LAB_0002c900;
      }
    }
    FUN_0002b068();
    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);
    unaff_s2 = piVar11;
  }
  else {
    FUN_0002b068();
    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);
  }
LAB_0002c8bc:
  while( true ) {
    if (iStack_d4 == *piVar15) {
      return;
    }
    (**(code **)(pcVar24 + 0x26d14))();
    piVar16 = piVar12;
    piVar11 = unaff_s2;
    unaff_s8 = iVar2;
LAB_0002cd34:
    iVar2 = unaff_s8;
    piVar12 = piVar16;
    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();
LAB_0002cd44:
    if (piVar16 != (int *)0x0) goto LAB_0002ce38;
    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);
LAB_0002cd68:
    FUN_0002b068(iVar2,apiStack_a0[0]);
    param_3 = piVar19;
    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));
    if (piVar12 != (int *)0x0) break;
LAB_0002ce24:
    *(undefined4 *)(iVar2 + 0x130) = 0;
    unaff_s2 = piVar11;
  }
  param_3 = (int *)0x10;
  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);
  iVar8 = FUN_0001c240(iVar2,unaff_s6);
  piVar12[0x1d] = iVar8;
  if (iVar8 != 0) {
    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);
    uVar10 = piVar12[0x3d];
    uVar9 = piVar12[2];
    piVar12[0x1e] = (int)piVar19;
    piVar12[0x1f] = (int)piStack_5d0;
    *(undefined4 *)(iVar2 + 0x374) = 0;
    piVar12[0x3d] = uVar10 | 0x10;
    piVar12[2] = uVar9 | 0x1000;
    param_3 = piStack_5d0;
    FUN_00015834(iVar2,piVar12);
    goto LAB_0002ce24;
  }
  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
  FUN_00015834(iVar2,piVar12);
  *(undefined4 *)(iVar2 + 0x130) = 0;
  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
  FUN_00015834(iVar2,piVar12);
  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);
LAB_0002c934:
  pcVar22 = *(code **)(pcVar24 + 0x26d2c);
  goto LAB_0002c938;
LAB_0002ce38:
  piVar16 = *(int **)(iVar2 + 0x14c);
  *(undefined4 *)(iVar2 + 0x130) = 0;
LAB_0002ca50:
  FUN_0002b068(iVar2,param_3);
  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
  FUN_00015834(iVar2,piVar12);
  unaff_s2 = piVar16;
  if (piVar16 != (int *)0x0) {
    pcVar22 = *(code **)(pcVar24 + 0x26d2c);
LAB_0002c938:
    (*pcVar22)(iVar2,piVar16);
    unaff_s2 = piVar16;
  }
  goto LAB_0002c8bc;
}


lui gp,0x3
addiu gp,gp,-0x1358
addu gp,gp,t9
addiu sp,sp,-0x78
lw v0,0x124(a0)
sw s1,0x68(sp)
andi v1,v0,0x1
lw s1,-0x7b34(gp)
sw gp,0x10(sp)
sw ra,0x74(sp)
sw s3,0x70(sp)
sw s2,0x6c(sp)
sw s0,0x64(sp)
lw a3,0x0(s1)
sw a3,0x5c(sp)
beq v1,zero,0x0002c5cc
_andi v0,v0,0x6
or s2,a1,zero
or s0,a0,zero
bne v0,zero,0x0002c424
_or a1,a2,zero
li v0,0x20
bne a2,v0,0x0002c3fc
_lw t9,-0x7eac(gp)
lw t9,-0x7f50(gp)
addiu s3,sp,0x3c
bal 0x0002aef8
_or a1,s3,zero
or a1,zero,zero
lw gp,0x10(sp)
lw t9,-0x7eac(gp)
bal 0x0002b068
_or a0,s0,zero
beq v0,zero,0x0002c450
_lw gp,0x10(sp)
lw v1,0x5c(sp)
lw v0,0x0(s1)
bne v1,v0,0x0002c5c0
_lw ra,0x74(sp)
lw s3,0x70(sp)
lw s2,0x6c(sp)
lw s1,0x68(sp)
lw s0,0x64(sp)
jr ra
_addiu sp,sp,0x78
bal 0x0002b068
_nop
or a0,s0,zero
lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x69c
b 0x0002c3d4
_lw gp,0x10(sp)
lw t9,-0x7eac(gp)
bal 0x0002b068
_nop
or a0,s0,zero
lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x68c
b 0x0002c3d4
_lw gp,0x10(sp)
lw t9,-0x7e0c(gp)
addiu t9,t9,-0x5350
bal 0x0002acb0
_or a0,s3,zero
addiu a0,sp,0x40
sw v0,0x34(sp)
bal 0x0002acb0
_or a3,v0,zero
addiu a0,sp,0x44
sw v0,0x38(sp)
bal 0x0002acb0
_or t0,v0,zero
addiu a0,sp,0x48
sw v0,0x1c(sp)
bal 0x0002acb0
_or t1,v0,zero
addiu a0,sp,0x4c
sw v0,0x20(sp)
bal 0x0002acb0
_or t2,v0,zero
addiu a0,sp,0x50
sw v0,0x24(sp)
bal 0x0002acb0
_or t3,v0,zero
addiu a0,sp,0x54
sw v0,0x28(sp)
bal 0x0002acb0
_or t4,v0,zero
addiu a0,sp,0x58
sw v0,0x2c(sp)
bal 0x0002acb0
_or t5,v0,zero
li v1,-0x1
lw gp,0x10(sp)
beq a3,v1,0x0002c568
_sw v0,0x30(sp)
beq t0,v1,0x0002c56c
_lw a1,-0x7fd4(gp)
beq t1,v1,0x0002c570
_or a0,s0,zero
beq t2,v1,0x0002c570
_nop
beq t3,v1,0x0002c570
_nop
beq t4,v1,0x0002c570
_nop
beq t5,v1,0x0002c570
_nop
beq v0,v1,0x0002c570
_nop
lhu v0,0x3e2(s0)
seh v1,v0
bltz v1,0x0002c3d4
_andi v1,v0,0x10
bne v1,zero,0x0002c584
_lw t9,-0x7e00(gp)
ori v0,v0,0x10
li a3,0x1
sh v0,0x3e2(s0)
addiu a2,sp,0x1c
addiu a1,s0,0x398
bal 0x00017e00
_or a0,s0,zero
or a1,s2,zero
lw gp,0x10(sp)
lw t9,-0x7e04(gp)
bal 0x00015834
_or a0,s0,zero
b 0x0002c3d4
_lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
or a0,s0,zero
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,0x70c
b 0x0002c3d4
_lw gp,0x10(sp)
li v1,-0x8000
lw t9,-0x7e04(gp)
or a1,s2,zero
or v0,v0,v1
or a0,s0,zero
bal 0x00015834
_sh v0,0x3e2(s0)
or a0,s0,zero
lw gp,0x10(sp)
lw a1,-0x7fd4(gp)
lw t9,-0x7b54(gp)
jalr t9
_addiu a1,a1,-0x1a18
b 0x0002c3d4
_lw gp,0x10(sp)
lw t9,-0x7b6c(gp)
jalr t9
_nop
lw a1,-0x7fd4(gp)
lw t9,-0x7ad4(gp)
jalr t9
_addiu a1,a1,0x6a4
(translation_unit "void FUN_0002c348(int param_1,int *param_2,int *param_3)\n\n{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}\n\n" (function_definition "void FUN_0002c348(int param_1,int *param_2,int *param_3)\n\n{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}" primitive_type (function_declarator "FUN_0002c348(int param_1,int *param_2,int *param_3)" identifier (parameter_list "(int param_1,int *param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined1 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int unaff_s8;" primitive_type identifier ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int *piStack_5d0;" primitive_type (pointer_declarator "*piStack_5d0" * identifier) ;) (declaration "int iStack_5c4;" primitive_type identifier ;) (declaration "int *piStack_5b0;" primitive_type (pointer_declarator "*piStack_5b0" * identifier) ;) (declaration "undefined4 uStack_5ac;" type_identifier identifier ;) (declaration "byte bStack_558;" type_identifier identifier ;) (declaration "byte bStack_557;" type_identifier identifier ;) (declaration "byte bStack_556;" type_identifier identifier ;) (declaration "byte bStack_555;" type_identifier identifier ;) (declaration "undefined4 auStack_554 [31];" type_identifier (array_declarator "auStack_554 [31]" identifier [ number_literal ]) ;) (declaration "byte bStack_4d8;" type_identifier identifier ;) (declaration "byte bStack_4d7;" type_identifier identifier ;) (declaration "byte bStack_4d6;" type_identifier identifier ;) (declaration "byte bStack_4d5;" type_identifier identifier ;) (declaration "undefined1 auStack_4d4 [1024];" type_identifier (array_declarator "auStack_4d4 [1024]" identifier [ number_literal ]) ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "int *piStack_c8;" primitive_type (pointer_declarator "*piStack_c8" * identifier) ;) (declaration "undefined1 *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "int *apiStack_a0 [2];" primitive_type (pointer_declarator "*apiStack_a0 [2]" * (array_declarator "apiStack_a0 [2]" identifier [ number_literal ])) ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "byte bStack_8d;" type_identifier identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "undefined *puStack_84;" type_identifier (pointer_declarator "*puStack_84" * identifier) ;) (declaration "int *piStack_80;" primitive_type (pointer_declarator "*piStack_80" * identifier) ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined1 auStack_3c [4];" type_identifier (array_declarator "auStack_3c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_38 [4];" type_identifier (array_declarator "auStack_38 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_34 [4];" type_identifier (array_declarator "auStack_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_30 [4];" type_identifier (array_declarator "auStack_30 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_2c [4];" type_identifier (array_declarator "auStack_2c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_28 [4];" type_identifier (array_declarator "auStack_28 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_24 [4];" type_identifier (array_declarator "auStack_24 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_20 [4];" type_identifier (array_declarator "auStack_20 [4]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar6 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_1c = *(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 "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\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 (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }" { (if_statement "if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 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 (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }" { (if_statement "if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }" if (parenthesized_expression "(param_3 == (int *)0x20)" ( (binary_expression "param_3 == (int *)0x20" identifier == (cast_expression "(int *)0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }" { (expression_statement "unaff_s3 = auStack_3c;" (assignment_expression "unaff_s3 = auStack_3c" identifier = identifier) ;) (expression_statement "FUN_0002aef8(param_1,unaff_s3);" (call_expression "FUN_0002aef8(param_1,unaff_s3)" identifier (argument_list "(param_1,unaff_s3)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = FUN_0002b068(param_1,0);" (assignment_expression "iVar2 = 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 (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" { (expression_statement "iVar8 = FUN_0002acb0(unaff_s3);" (assignment_expression "iVar8 = FUN_0002acb0(unaff_s3)" identifier = (call_expression "FUN_0002acb0(unaff_s3)" identifier (argument_list "(unaff_s3)" ( identifier )))) ;) (expression_statement "local_44 = iVar8;" (assignment_expression "local_44 = iVar8" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0002acb0(auStack_38);" (assignment_expression "iVar2 = FUN_0002acb0(auStack_38)" identifier = (call_expression "FUN_0002acb0(auStack_38)" identifier (argument_list "(auStack_38)" ( identifier )))) ;) (expression_statement "local_40 = iVar2;" (assignment_expression "local_40 = iVar2" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0002acb0(auStack_34);" (assignment_expression "iVar7 = FUN_0002acb0(auStack_34)" identifier = (call_expression "FUN_0002acb0(auStack_34)" identifier (argument_list "(auStack_34)" ( identifier )))) ;) (expression_statement "local_5c = iVar7;" (assignment_expression "local_5c = iVar7" identifier = identifier) ;) (expression_statement "iVar13 = FUN_0002acb0(auStack_30);" (assignment_expression "iVar13 = FUN_0002acb0(auStack_30)" identifier = (call_expression "FUN_0002acb0(auStack_30)" identifier (argument_list "(auStack_30)" ( identifier )))) ;) (expression_statement "local_58 = iVar13;" (assignment_expression "local_58 = iVar13" identifier = identifier) ;) (expression_statement "iVar14 = FUN_0002acb0(auStack_2c);" (assignment_expression "iVar14 = FUN_0002acb0(auStack_2c)" identifier = (call_expression "FUN_0002acb0(auStack_2c)" identifier (argument_list "(auStack_2c)" ( identifier )))) ;) (expression_statement "local_54 = iVar14;" (assignment_expression "local_54 = iVar14" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0002acb0(auStack_28);" (assignment_expression "iVar3 = FUN_0002acb0(auStack_28)" identifier = (call_expression "FUN_0002acb0(auStack_28)" identifier (argument_list "(auStack_28)" ( identifier )))) ;) (expression_statement "local_50 = iVar3;" (assignment_expression "local_50 = iVar3" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0002acb0(auStack_24);" (assignment_expression "iVar4 = FUN_0002acb0(auStack_24)" identifier = (call_expression "FUN_0002acb0(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (expression_statement "local_4c = iVar4;" (assignment_expression "local_4c = iVar4" identifier = identifier) ;) (expression_statement "local_48 = FUN_0002acb0(auStack_20);" (assignment_expression "local_48 = FUN_0002acb0(auStack_20)" identifier = (call_expression "FUN_0002acb0(auStack_20)" identifier (argument_list "(auStack_20)" ( identifier )))) ;) (if_statement "if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" if (parenthesized_expression "(((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1))))))" ( (binary_expression "((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))" (parenthesized_expression "((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1))))" ( (binary_expression "(((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))" (parenthesized_expression "(((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1))" ( (binary_expression "((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)" (parenthesized_expression "((iVar8 == -1) || (iVar2 == -1))" ( (binary_expression "(iVar8 == -1) || (iVar2 == -1)" (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) ))) )) || (parenthesized_expression "((iVar13 == -1 || (iVar14 == -1)))" ( (parenthesized_expression "(iVar13 == -1 || (iVar14 == -1))" ( (binary_expression "iVar13 == -1 || (iVar14 == -1)" (binary_expression "iVar13 == -1" identifier == number_literal) || (parenthesized_expression "(iVar14 == -1)" ( (binary_expression "iVar14 == -1" identifier == number_literal) ))) )) ))) )) || (parenthesized_expression "((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))" ( (parenthesized_expression "(iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1))))" ( (binary_expression "iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))" (binary_expression "iVar3 == -1" identifier == number_literal) || (parenthesized_expression "((iVar4 == -1 || (local_48 == -1)))" ( (parenthesized_expression "(iVar4 == -1 || (local_48 == -1))" ( (binary_expression "iVar4 == -1 || (local_48 == -1)" (binary_expression "iVar4 == -1" identifier == number_literal) || (parenthesized_expression "(local_48 == -1)" ( (binary_expression "local_48 == -1" identifier == number_literal) ))) )) ))) )) ))) )) (compound_statement "{\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }" { (expression_statement "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c)" (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 + 0x70c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x70c" identifier + number_literal) ))) ;) }) (else_clause "else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" else (compound_statement "{\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" { (expression_statement "uVar1 = *(ushort *)(param_1 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(param_1 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(param_1 + 0x3e2)" * (cast_expression "(ushort *)(param_1 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e2)" ( (binary_expression "param_1 + 0x3e2" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" identifier = identifier) ;) (if_statement "if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -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 *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }" { (if_statement "if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -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 *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }" { (expression_statement "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;" (assignment_expression "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10" (pointer_expression "*(ushort *)(param_1 + 0x3e2)" * (cast_expression "(ushort *)(param_1 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e2)" ( (binary_expression "param_1 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x10" identifier | number_literal)) ;) (expression_statement "param_3 = &local_5c;" (assignment_expression "param_3 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "FUN_00017e00(param_1,param_1 + 0x398,param_3,1);" (call_expression "FUN_00017e00(param_1,param_1 + 0x398,param_3,1)" identifier (argument_list "(param_1,param_1 + 0x398,param_3,1)" ( identifier , (binary_expression "param_1 + 0x398" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00015834(param_1,param_2);" (call_expression "FUN_00015834(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }" else (compound_statement "{\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }" { (expression_statement "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(param_1 + 0x3e2)" * (cast_expression "(ushort *)(param_1 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e2)" ( (binary_expression "param_1 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(param_1,param_2);" (call_expression "FUN_00015834(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18)" (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 + -0x1a18)" ( identifier , (binary_expression "PTR_s_nt_0005301c + -0x1a18" identifier + number_literal) ))) ;) }))) })) }))) })) }) (else_clause "else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }" else (compound_statement "{\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\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 + 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) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\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) ))) ;) }))) (if_statement "if (local_1c == *(int *)puVar6) {\n      return;\n    }" if (parenthesized_expression "(local_1c == *(int *)puVar6)" ( (binary_expression "local_1c == *(int *)puVar6" identifier == (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (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_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) })) (expression_statement "pcVar24 = FUN_0002c5dc;" (assignment_expression "pcVar24 = FUN_0002c5dc" identifier = identifier) ;) (expression_statement "piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);" (assignment_expression "piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4)" identifier = (cast_expression "(int *)(PTR_s_nt_0005301c + 0x6a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt_0005301c + 0x6a4)" ( (binary_expression "PTR_s_nt_0005301c + 0x6a4" identifier + number_literal) )))) ;) (expression_statement "puVar21 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar21 = 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 "puVar23 = puVar21 + 0x2ea14;" (assignment_expression "puVar23 = puVar21 + 0x2ea14" identifier = (binary_expression "puVar21 + 0x2ea14" identifier + number_literal)) ;) (expression_statement "puStack_84 = puVar6;" (assignment_expression "puStack_84 = puVar6" identifier = identifier) ;) (expression_statement "piVar16 = *(int **)(puVar21 + 0x26ee0);" (assignment_expression "piVar16 = *(int **)(puVar21 + 0x26ee0)" identifier = (pointer_expression "*(int **)(puVar21 + 0x26ee0)" * (cast_expression "(int **)(puVar21 + 0x26ee0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x26ee0)" ( (binary_expression "puVar21 + 0x26ee0" identifier + number_literal) ))))) ;) (expression_statement "iStack_8c = *piVar16;" (assignment_expression "iStack_8c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "puStack_98 = puVar23;" (assignment_expression "puStack_98 = puVar23" identifier = identifier) ;) (expression_statement "iStack_88 = unaff_s0;" (assignment_expression "iStack_88 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_80 = unaff_s2;" (assignment_expression "piStack_80 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_7c = pcVar24;" (assignment_expression "pcStack_7c = pcVar24" identifier = identifier) ;) (if_statement "if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar8 + 0x124) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x124) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x124) & 1)" ( (binary_expression "*(uint *)(iVar8 + 0x124) & 1" (pointer_expression "*(uint *)(iVar8 + 0x124)" * (cast_expression "(uint *)(iVar8 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x124)" ( (binary_expression "iVar8 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }" { (expression_statement "piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);" (assignment_expression "piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4)" identifier = (cast_expression "(int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x26a40) + 0x6a4)" ( (binary_expression "*(int *)(puVar21 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(puVar21 + 0x26a40)" * (cast_expression "(int *)(puVar21 + 0x26a40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x26a40)" ( (binary_expression "puVar21 + 0x26a40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar21 + 0x26f40))();" (call_expression "(**(code **)(puVar21 + 0x26f40))()" (parenthesized_expression "(**(code **)(puVar21 + 0x26f40))" ( (pointer_expression "**(code **)(puVar21 + 0x26f40)" * (pointer_expression "*(code **)(puVar21 + 0x26f40)" * (cast_expression "(code **)(puVar21 + 0x26f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x26f40)" ( (binary_expression "puVar21 + 0x26f40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) }) (else_clause "else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" else (compound_statement "{\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" { (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) (if_statement "if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" if (parenthesized_expression "((*(uint *)(iVar8 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x124) & 6)" ( (binary_expression "*(uint *)(iVar8 + 0x124) & 6" (pointer_expression "*(uint *)(iVar8 + 0x124)" * (cast_expression "(uint *)(iVar8 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x124)" ( (binary_expression "iVar8 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }" { (if_statement "if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" if (parenthesized_expression "(param_3 == (int *)0x1)" ( (binary_expression "param_3 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }" { (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = FUN_0002b068();" (assignment_expression "iVar7 = FUN_0002b068()" identifier = (call_expression "FUN_0002b068()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" { (expression_statement "uVar1 = *(ushort *)(iVar8 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(iVar8 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(iVar8 + 0x3e2)" * (cast_expression "(ushort *)(iVar8 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3e2)" ( (binary_expression "iVar8 + 0x3e2" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -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              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }" { (if_statement "if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -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              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }" { (expression_statement "param_3 = (int *)(uint)bStack_8d;" (assignment_expression "param_3 = (int *)(uint)bStack_8d" identifier = (cast_expression "(int *)(uint)bStack_8d" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bStack_8d" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "FUN_00018198(iVar8,iVar8 + 0x398);" (call_expression "FUN_00018198(iVar8,iVar8 + 0x398)" identifier (argument_list "(iVar8,iVar8 + 0x398)" ( identifier , (binary_expression "iVar8 + 0x398" identifier + number_literal) ))) ;) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) (expression_statement "piVar12 = piVar11;" (assignment_expression "piVar12 = piVar11" identifier = identifier) ;) (expression_statement "FUN_00015834();" (call_expression "FUN_00015834()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" else (compound_statement "{\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" { (expression_statement "*(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(iVar8 + 0x3e2)" * (cast_expression "(ushort *)(iVar8 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3e2)" ( (binary_expression "iVar8 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(iVar8,piVar11);" (call_expression "FUN_00015834(iVar8,piVar11)" identifier (argument_list "(iVar8,piVar11)" ( identifier , identifier ))) ;) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" identifier = (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) })) }) (else_clause "else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" else (compound_statement "{\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" identifier = (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" else (compound_statement "{\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" identifier = (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "unaff_s0 = iVar8;" (assignment_expression "unaff_s0 = iVar8" identifier = identifier) ;) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) (expression_statement "puVar23 = puStack_98;" (assignment_expression "puVar23 = puStack_98" identifier = identifier) ;) (if_statement "if (iStack_8c == *piVar16) {\n      return;\n    }" if (parenthesized_expression "(iStack_8c == *piVar16)" ( (binary_expression "iStack_8c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar24 = *(code **)(puVar23 + -0x7b6c);" (assignment_expression "pcVar24 = *(code **)(puVar23 + -0x7b6c)" identifier = (pointer_expression "*(code **)(puVar23 + -0x7b6c)" * (cast_expression "(code **)(puVar23 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + -0x7b6c)" ( (binary_expression "puVar23 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar24 + 0x26d4c);" (assignment_expression "piVar15 = *(int **)(pcVar24 + 0x26d4c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x26d4c)" * (cast_expression "(int **)(pcVar24 + 0x26d4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d4c)" ( (binary_expression "pcVar24 + 0x26d4c" identifier + number_literal) ))))) ;) (expression_statement "piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);" (assignment_expression "piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1)" identifier = (cast_expression "(int *)(*(uint *)(iVar2 + 0x124) & 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(iVar2 + 0x124) & 1)" ( (binary_expression "*(uint *)(iVar2 + 0x124) & 1" (pointer_expression "*(uint *)(iVar2 + 0x124)" * (cast_expression "(uint *)(iVar2 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x124)" ( (binary_expression "iVar2 + 0x124" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "iStack_d4 = *piVar15;" (assignment_expression "iStack_d4 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "piVar11 = unaff_s2;" (assignment_expression "piVar11 = unaff_s2" identifier = identifier) ;) (expression_statement "iStack_d0 = unaff_s0;" (assignment_expression "iStack_d0 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_cc = piVar16;" (assignment_expression "piStack_cc = piVar16" identifier = identifier) ;) (expression_statement "piStack_c8 = unaff_s2;" (assignment_expression "piStack_c8 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s3;" (assignment_expression "puStack_c4 = unaff_s3" identifier = identifier) ;) (expression_statement "apiStack_a0[0] = param_3;" (assignment_expression "apiStack_a0[0] = param_3" (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (piVar19 == (int *)0x0) goto LAB_0002cd34;" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd34;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" if (parenthesized_expression "((*(uint *)(iVar2 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(iVar2 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(iVar2 + 0x124) & 6)" ( (binary_expression "*(uint *)(iVar2 + 0x124) & 6" (pointer_expression "*(uint *)(iVar2 + 0x124)" * (cast_expression "(uint *)(iVar2 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x124)" ( (binary_expression "iVar2 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }" { (if_statement "if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" if (parenthesized_expression "((int *)0xd < param_3)" ( (binary_expression "(int *)0xd < param_3" (cast_expression "(int *)0xd" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" { (if_statement "if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" if (parenthesized_expression "((short)*(ushort *)(iVar2 + 0x3e2) < 0)" ( (binary_expression "(short)*(ushort *)(iVar2 + 0x3e2) < 0" (cast_expression "(short)*(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 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 *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }" if (parenthesized_expression "((*(ushort *)(iVar2 + 0x3e2) & 4) != 0)" ( (binary_expression "(*(ushort *)(iVar2 + 0x3e2) & 4) != 0" (parenthesized_expression "(*(ushort *)(iVar2 + 0x3e2) & 4)" ( (binary_expression "*(ushort *)(iVar2 + 0x3e2) & 4" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }" { (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x71c)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x71c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);" statement_identifier : (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" identifier (argument_list "(iVar2,apiStack_a0[0])" ( identifier , (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002c934;" goto statement_identifier ;) })) (expression_statement "piVar16 = (int *)0x51;" (assignment_expression "piVar16 = (int *)0x51" identifier = (cast_expression "(int *)0x51" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }" if (parenthesized_expression "(param_3 < (int *)0x51)" ( (binary_expression "param_3 < (int *)0x51" identifier < (cast_expression "(int *)0x51" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar16 = param_3;\n      }" { (expression_statement "piVar16 = param_3;" (assignment_expression "piVar16 = param_3" identifier = identifier) ;) })) (expression_statement "piVar11 = &uStack_5ac;" (assignment_expression "piVar11 = &uStack_5ac" identifier = (pointer_expression "&uStack_5ac" & identifier)) ;) (expression_statement "param_3 = piVar16;" (assignment_expression "param_3 = piVar16" identifier = identifier) ;) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);" (assignment_expression "apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16)" (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) = (cast_expression "(int *)((int)apiStack_a0[0] - (int)piVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apiStack_a0[0] - (int)piVar16)" ( (binary_expression "(int)apiStack_a0[0] - (int)piVar16" (cast_expression "(int)apiStack_a0[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) - (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" if (parenthesized_expression "((int *)0xa < apiStack_a0[0])" ( (binary_expression "(int *)0xa < apiStack_a0[0]" (cast_expression "(int *)0xa" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) )) (compound_statement "{\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" { (expression_statement "pcVar5 = (char *)((int)&uStack_5ac + 1);" (assignment_expression "pcVar5 = (char *)((int)&uStack_5ac + 1)" identifier = (cast_expression "(char *)((int)&uStack_5ac + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_5ac + 1)" ( (binary_expression "(int)&uStack_5ac + 1" (cast_expression "(int)&uStack_5ac" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_5ac" & identifier)) + number_literal) )))) ;) (if_statement "if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" if (parenthesized_expression "(uStack_5ac._0_1_ == '\0')" ( (binary_expression "uStack_5ac._0_1_ == '\0'" (field_expression "uStack_5ac._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }" { (labeled_statement "LAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);" statement_identifier : (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x748)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x748)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x748" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;)) }) (else_clause "else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" else (compound_statement "{\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" { (do_statement "do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);" do (compound_statement "{\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          }" { (expression_statement "piVar20 = piVar19;" (assignment_expression "piVar20 = piVar19" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)((int)piVar20 + 1);" (assignment_expression "unaff_s6 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar19 = piVar20;" (assignment_expression "piVar19 = piVar20" identifier = identifier) ;) (if_statement "if (*pcVar5 == '\0') goto LAB_0002c86c;" if (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002c86c;" goto statement_identifier ;)) (expression_statement "piVar19 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar19 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar19 == (int *)0x50) goto LAB_0002c974;" if (parenthesized_expression "(piVar19 == (int *)0x50)" ( (binary_expression "piVar19 == (int *)0x50" identifier == (cast_expression "(int *)0x50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c974;" goto statement_identifier ;)) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 != piVar19)" ( (binary_expression "piVar16 != piVar19" identifier != identifier) )) ;) (expression_statement "unaff_s6 = (int *)((int)piVar20 + 2);" (assignment_expression "unaff_s6 = (int *)((int)piVar20 + 2)" identifier = (cast_expression "(int *)((int)piVar20 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 2)" ( (binary_expression "(int)piVar20 + 2" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" statement_identifier : (if_statement "if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" if (parenthesized_expression "((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0'))" ( (binary_expression "(unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')" (parenthesized_expression "(unaff_s6 < piVar16)" ( (binary_expression "unaff_s6 < piVar16" identifier < identifier) )) && (parenthesized_expression "(*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')" ( (binary_expression "*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0'" (pointer_expression "*(char *)((int)&uStack_5ac + (int)unaff_s6)" * (cast_expression "(char *)((int)&uStack_5ac + (int)unaff_s6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_5ac + (int)unaff_s6)" ( (binary_expression "(int)&uStack_5ac + (int)unaff_s6" (cast_expression "(int)&uStack_5ac" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_5ac" & identifier)) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" { (expression_statement "iVar8 = FUN_0002a9cc(iVar2,0x69434350);" (assignment_expression "iVar8 = FUN_0002a9cc(iVar2,0x69434350)" identifier = (call_expression "FUN_0002a9cc(iVar2,0x69434350)" identifier (argument_list "(iVar2,0x69434350)" ( identifier , number_literal )))) ;) (if_statement "if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }" { (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" identifier = (pointer_expression "*(int **)(iVar2 + 0x14c)" * (cast_expression "(int **)(iVar2 + 0x14c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) ))))) ;) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" identifier = (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);" (call_expression "(**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26c24))" ( (pointer_expression "**(code **)(pcVar24 + 0x26c24)" * (pointer_expression "*(code **)(pcVar24 + 0x26c24)" * (cast_expression "(code **)(pcVar24 + 0x26c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26c24)" ( (binary_expression "pcVar24 + 0x26c24" identifier + number_literal) ))))) )) (argument_list "(&bStack_558,0,0x84)" ( (pointer_expression "&bStack_558" & identifier) , number_literal , number_literal ))) ;) (expression_statement "puVar6 = (undefined *)((int)piVar19 + 2);" (assignment_expression "puVar6 = (undefined *)((int)piVar19 + 2)" identifier = (cast_expression "(undefined *)((int)piVar19 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + 2)" ( (binary_expression "(int)piVar19 + 2" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));" (assignment_expression "piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19))" identifier = (cast_expression "(int *)((int)piVar16 + (-2 - (int)piVar19))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + (-2 - (int)piVar19))" ( (binary_expression "(int)piVar16 + (-2 - (int)piVar19)" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-2 - (int)piVar19)" ( (binary_expression "-2 - (int)piVar19" number_literal - (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "piStack_5b0 = (int *)0x84;" (assignment_expression "piStack_5b0 = (int *)0x84" identifier = (cast_expression "(int *)0x84" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);" (assignment_expression "*(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6)" (pointer_expression "*(undefined **)(iVar2 + 0x134)" * (cast_expression "(undefined **)(iVar2 + 0x134)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x134)" ( (binary_expression "iVar2 + 0x134" identifier + number_literal) )))) = (cast_expression "(undefined *)((int)piVar11 + (int)puVar6)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + (int)puVar6)" ( (binary_expression "(int)piVar11 + (int)puVar6" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(int **)(iVar2 + 0x138) = piVar19;" (assignment_expression "*(int **)(iVar2 + 0x138) = piVar19" (pointer_expression "*(int **)(iVar2 + 0x138)" * (cast_expression "(int **)(iVar2 + 0x138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x138)" ( (binary_expression "iVar2 + 0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" ( (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" * (cast_expression "(int *)(iVar2 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x1cc)" * (cast_expression "(int *)(iVar2 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1cc)" ( (binary_expression "iVar2 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }" { (expression_statement "iVar8 = *(int *)(pcVar24 + 0x26a74);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x26a74)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x26a74)" * (cast_expression "(int *)(pcVar24 + 0x26a74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x26a74)" ( (binary_expression "pcVar24 + 0x26a74" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(iVar2 + 0x140) = &bStack_558;" (assignment_expression "*(byte **)(iVar2 + 0x140) = &bStack_558" (pointer_expression "*(byte **)(iVar2 + 0x140)" * (cast_expression "(byte **)(iVar2 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x140)" ( (binary_expression "iVar2 + 0x140" identifier + number_literal) )))) = (pointer_expression "&bStack_558" & identifier)) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" * (cast_expression "(undefined4 *)(iVar2 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x144)" ( (binary_expression "iVar2 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);" (call_expression "FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" identifier (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" ( identifier , identifier , identifier , (pointer_expression "&piStack_5b0" & identifier) , number_literal ))) ;) (if_statement "if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }" if (parenthesized_expression "(piStack_5b0 == (int *)0x0)" ( (binary_expression "piStack_5b0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }" { (expression_statement "iStack_5c4 = iVar2 + 0x398;" (assignment_expression "iStack_5c4 = iVar2 + 0x398" identifier = (binary_expression "iVar2 + 0x398" identifier + number_literal)) ;) (expression_statement "piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);" (assignment_expression "piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" identifier = (cast_expression "(int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" ( (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100" (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555" (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000" (binary_expression "(uint)bStack_558 * 0x1000000" (cast_expression "(uint)bStack_558" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_557 * 0x10000" (cast_expression "(uint)bStack_557" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_555" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_556 * 0x100" (cast_expression "(uint)bStack_556" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "param_3 = piVar11;" (assignment_expression "param_3 = piVar11" identifier = identifier) ;) (expression_statement "iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);" (assignment_expression "iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0)" identifier = (call_expression "FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0)" identifier (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" if (parenthesized_expression "((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)" ( (comma_expression "param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0" (assignment_expression "param_3 = piVar11" identifier = identifier) , (comma_expression "iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0" (assignment_expression "iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" identifier = (call_expression "FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" identifier (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" ( identifier , identifier , identifier , identifier , (pointer_expression "&bStack_558" & identifier) , (pointer_expression "*(undefined1 *)(iVar2 + 0x1ff)" * (cast_expression "(undefined1 *)(iVar2 + 0x1ff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1ff)" ( (binary_expression "iVar2 + 0x1ff" identifier + number_literal) )))) )))) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" { (expression_statement "param_3 = (int *)0x2;" (assignment_expression "param_3 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);" (assignment_expression "piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2)" identifier = (cast_expression "(int *)FUN_0002ab84(iVar2,piStack_5d0,2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002ab84(iVar2,piStack_5d0,2)" identifier (argument_list "(iVar2,piStack_5d0,2)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "iVar8 = *(int *)(pcVar24 + 0x268ac);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar16 = (int *)(iVar8 + -0x184);" (assignment_expression "piVar16 = (int *)(iVar8 + -0x184)" identifier = (cast_expression "(int *)(iVar8 + -0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x184)" ( (binary_expression "iVar8 + -0x184" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) (expression_statement "piVar16 = piVar19;" (assignment_expression "piVar16 = piVar19" identifier = identifier) ;) (expression_statement "pbVar17 = &bStack_558;" (assignment_expression "pbVar17 = &bStack_558" identifier = (pointer_expression "&bStack_558" & identifier)) ;) (do_statement "do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);" do (compound_statement "{\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  }" { (expression_statement "pbVar18 = pbVar17 + 0x10;" (assignment_expression "pbVar18 = pbVar17 + 0x10" identifier = (binary_expression "pbVar17 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar14 = *(int *)(pbVar17 + 4);" (assignment_expression "iVar14 = *(int *)(pbVar17 + 4)" identifier = (pointer_expression "*(int *)(pbVar17 + 4)" * (cast_expression "(int *)(pbVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 4)" ( (binary_expression "pbVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(pbVar17 + 8);" (assignment_expression "iVar13 = *(int *)(pbVar17 + 8)" identifier = (pointer_expression "*(int *)(pbVar17 + 8)" * (cast_expression "(int *)(pbVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 8)" ( (binary_expression "pbVar17 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pbVar17 + 0xc);" (assignment_expression "iVar7 = *(int *)(pbVar17 + 0xc)" identifier = (pointer_expression "*(int *)(pbVar17 + 0xc)" * (cast_expression "(int *)(pbVar17 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0xc)" ( (binary_expression "pbVar17 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*piVar16 = *(int *)pbVar17;" (assignment_expression "*piVar16 = *(int *)pbVar17" (pointer_expression "*piVar16" * identifier) = (pointer_expression "*(int *)pbVar17" * (cast_expression "(int *)pbVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar16[1] = iVar14;" (assignment_expression "piVar16[1] = iVar14" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[2] = iVar13;" (assignment_expression "piVar16[2] = iVar13" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[3] = iVar7;" (assignment_expression "piVar16[3] = iVar7" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16 = piVar16 + 4;" (assignment_expression "piVar16 = piVar16 + 4" identifier = (binary_expression "piVar16 + 4" identifier + number_literal)) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar18 != &bStack_4d8)" ( (binary_expression "pbVar18 != &bStack_4d8" identifier != (pointer_expression "&bStack_4d8" & identifier)) )) ;) (expression_statement "*piVar16 = *(int *)pbVar18;" (assignment_expression "*piVar16 = *(int *)pbVar18" (pointer_expression "*piVar16" * identifier) = (pointer_expression "*(int *)pbVar18" * (cast_expression "(int *)pbVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;" (assignment_expression "iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100" identifier = (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100" (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5" (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000" (binary_expression "(uint)bStack_4d8 * 0x1000000" (cast_expression "(uint)bStack_4d8" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_4d7 * 0x10000" (cast_expression "(uint)bStack_4d7" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_4d5" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_4d6 * 0x100" (cast_expression "(uint)bStack_4d6" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "piVar16 = (int *)(iVar7 * 0xc);" (assignment_expression "piVar16 = (int *)(iVar7 * 0xc)" identifier = (cast_expression "(int *)(iVar7 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 * 0xc)" ( (binary_expression "iVar7 * 0xc" identifier * number_literal) )))) ;) (expression_statement "piStack_5b0 = piVar16;" (assignment_expression "piStack_5b0 = piVar16" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" ( (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" * (cast_expression "(int *)(iVar2 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x1cc)" * (cast_expression "(int *)(iVar2 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1cc)" ( (binary_expression "iVar2 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }" { (expression_statement "*(int **)(iVar2 + 0x140) = piVar19 + 0x21;" (assignment_expression "*(int **)(iVar2 + 0x140) = piVar19 + 0x21" (pointer_expression "*(int **)(iVar2 + 0x140)" * (cast_expression "(int **)(iVar2 + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x140)" ( (binary_expression "iVar2 + 0x140" identifier + number_literal) )))) = (binary_expression "piVar19 + 0x21" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" * (cast_expression "(undefined4 *)(iVar2 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x144)" ( (binary_expression "iVar2 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);" (call_expression "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" (parenthesized_expression "(*(code *)(iVar8 + -0x47c4))" ( (pointer_expression "*(code *)(iVar8 + -0x47c4)" * (cast_expression "(code *)(iVar8 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x47c4)" ( (binary_expression "iVar8 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" ( identifier , identifier , identifier , (pointer_expression "&piStack_5b0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" else (compound_statement "{\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" { (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" * (cast_expression "(int *)(iVar2 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(piStack_5b0 != (int *)0x0)" ( (binary_expression "piStack_5b0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "param_3 = piVar11;" (assignment_expression "param_3 = piVar11" identifier = identifier) ;) (expression_statement "iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);" (assignment_expression "iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" identifier = (call_expression "FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" identifier (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;" (assignment_expression "piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21" identifier = (binary_expression "piStack_5d0 + iVar7 * -3 + -0x21" (binary_expression "piStack_5d0 + iVar7 * -3" identifier + (binary_expression "iVar7 * -3" identifier * number_literal)) + number_literal)) ;) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" ( (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" * (cast_expression "(int *)(iVar2 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x1cc)" * (cast_expression "(int *)(iVar2 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1cc)" ( (binary_expression "iVar2 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }" { (expression_statement "*(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));" (assignment_expression "*(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21))" (pointer_expression "*(undefined **)(iVar2 + 0x140)" * (cast_expression "(undefined **)(iVar2 + 0x140)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x140)" ( (binary_expression "iVar2 + 0x140" identifier + number_literal) )))) = (cast_expression "(undefined *)((int)piVar19 + (int)(piVar16 + 0x21))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + (int)(piVar16 + 0x21))" ( (binary_expression "(int)piVar19 + (int)(piVar16 + 0x21)" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(piVar16 + 0x21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0x21)" ( (binary_expression "piVar16 + 0x21" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" * (cast_expression "(undefined4 *)(iVar2 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x144)" ( (binary_expression "iVar2 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);" (call_expression "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1)" (parenthesized_expression "(*(code *)(iVar8 + -0x47c4))" ( (pointer_expression "*(code *)(iVar8 + -0x47c4)" * (cast_expression "(code *)(iVar8 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x47c4)" ( (binary_expression "iVar8 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1)" ( identifier , identifier , identifier , (pointer_expression "&piStack_5b0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" else (compound_statement "{\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" { (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" * (cast_expression "(int *)(iVar2 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" identifier = (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) ;) (if_statement "if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" if (parenthesized_expression "(apiStack_a0[0] == (int *)0x0)" ( (binary_expression "apiStack_a0[0] == (int *)0x0" (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" { (if_statement "if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;" if (parenthesized_expression "(piStack_5b0 == (int *)0x0)" ( (binary_expression "piStack_5b0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd68;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;) })) (expression_statement "piVar16 = piStack_5b0;" (assignment_expression "piVar16 = piStack_5b0" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;" if (parenthesized_expression "(*(int *)(iVar2 + 0x128) << 0xb < 0)" ( (binary_expression "*(int *)(iVar2 + 0x128) << 0xb < 0" (binary_expression "*(int *)(iVar2 + 0x128) << 0xb" (pointer_expression "*(int *)(iVar2 + 0x128)" * (cast_expression "(int *)(iVar2 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x128)" ( (binary_expression "iVar2 + 0x128" identifier + number_literal) )))) << number_literal) < number_literal) )) (goto_statement "goto LAB_0002cd44;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(pcVar24 + 0x268ac);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar16 = (int *)(iVar8 + 0x674);" (assignment_expression "piVar16 = (int *)(iVar8 + 0x674)" identifier = (cast_expression "(int *)(iVar8 + 0x674)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x674)" ( (binary_expression "iVar8 + 0x674" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) })) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" identifier (argument_list "(iVar2,apiStack_a0[0])" ( identifier , (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) ))) ;) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) }) (else_clause "else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" else (compound_statement "{\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" { (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" * (cast_expression "(int *)(iVar2 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (labeled_statement "LAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);" statement_identifier : (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" identifier = (pointer_expression "*(int **)(iVar2 + 0x14c)" * (cast_expression "(int **)(iVar2 + 0x14c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" identifier = (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) }))) (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x730)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x730)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x730" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 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 **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);" (call_expression "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c)" ( identifier , (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x237c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) }) (else_clause "else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" else (compound_statement "{\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);" (call_expression "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x68c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" statement_identifier : (while_statement "while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" { (if_statement "if (iStack_d4 == *piVar15) {\n      return;\n    }" if (parenthesized_expression "(iStack_d4 == *piVar15)" ( (binary_expression "iStack_d4 == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar24 + 0x26d14))();" (call_expression "(**(code **)(pcVar24 + 0x26d14))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d14))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d14)" * (pointer_expression "*(code **)(pcVar24 + 0x26d14)" * (cast_expression "(code **)(pcVar24 + 0x26d14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d14)" ( (binary_expression "pcVar24 + 0x26d14" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" identifier = identifier) ;) (expression_statement "piVar11 = unaff_s2;" (assignment_expression "piVar11 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s8 = iVar2;" (assignment_expression "unaff_s8 = iVar2" identifier = identifier) ;) (labeled_statement "LAB_0002cd34:\n    iVar2 = unaff_s8;" statement_identifier : (expression_statement "iVar2 = unaff_s8;" (assignment_expression "iVar2 = unaff_s8" identifier = identifier) ;)) (expression_statement "piVar12 = piVar16;" (assignment_expression "piVar12 = piVar16" identifier = identifier) ;) (expression_statement "piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();" (assignment_expression "piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + 0x26dac))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x26dac))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x26dac))" ( (pointer_expression "**(code **)(pcVar24 + 0x26dac)" * (pointer_expression "*(code **)(pcVar24 + 0x26dac)" * (cast_expression "(code **)(pcVar24 + 0x26dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26dac)" ( (binary_expression "pcVar24 + 0x26dac" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;" statement_identifier : (if_statement "if (piVar16 != (int *)0x0) goto LAB_0002ce38;" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;))) (expression_statement "(**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);" (call_expression "(**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26bf8))" ( (pointer_expression "**(code **)(pcVar24 + 0x26bf8)" * (pointer_expression "*(code **)(pcVar24 + 0x26bf8)" * (cast_expression "(code **)(pcVar24 + 0x26bf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26bf8)" ( (binary_expression "pcVar24 + 0x26bf8" identifier + number_literal) ))))) )) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674)" ( identifier , (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x674" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);" statement_identifier : (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" identifier (argument_list "(iVar2,apiStack_a0[0])" ( identifier , (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "param_3 = piVar19;" (assignment_expression "param_3 = piVar19" identifier = identifier) ;) (expression_statement "FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));" (call_expression "FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164))" identifier (argument_list "(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar2 + 0x164)" * (cast_expression "(undefined4 *)(iVar2 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x164)" ( (binary_expression "iVar2 + 0x164" identifier + number_literal) )))) ))) ;) (if_statement "if (piVar12 != (int *)0x0) break;" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) }))) (expression_statement "param_3 = (int *)0x10;" (assignment_expression "param_3 = (int *)0x10" identifier = (cast_expression "(int *)0x10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);" (call_expression "(**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26bd0))" ( (pointer_expression "**(code **)(pcVar24 + 0x26bd0)" * (pointer_expression "*(code **)(pcVar24 + 0x26bd0)" * (cast_expression "(code **)(pcVar24 + 0x26bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26bd0)" ( (binary_expression "pcVar24 + 0x26bd0" identifier + number_literal) ))))) )) (argument_list "(iVar2,piVar12,0x10,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar8 = FUN_0001c240(iVar2,unaff_s6);" (assignment_expression "iVar8 = FUN_0001c240(iVar2,unaff_s6)" identifier = (call_expression "FUN_0001c240(iVar2,unaff_s6)" identifier (argument_list "(iVar2,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "piVar12[0x1d] = iVar8;" (assignment_expression "piVar12[0x1d] = iVar8" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);" (call_expression "(**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d54))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d54)" * (pointer_expression "*(code **)(pcVar24 + 0x26d54)" * (cast_expression "(code **)(pcVar24 + 0x26d54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d54)" ( (binary_expression "pcVar24 + 0x26d54" identifier + number_literal) ))))) )) (argument_list "(iVar8,piVar11,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = piVar12[0x3d];" (assignment_expression "uVar10 = piVar12[0x3d]" identifier = (subscript_expression "piVar12[0x3d]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = piVar12[2];" (assignment_expression "uVar9 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) (expression_statement "piVar12[0x1e] = (int)piVar19;" (assignment_expression "piVar12[0x1e] = (int)piVar19" (subscript_expression "piVar12[0x1e]" identifier [ number_literal ]) = (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar12[0x1f] = (int)piStack_5d0;" (assignment_expression "piVar12[0x1f] = (int)piStack_5d0" (subscript_expression "piVar12[0x1f]" identifier [ number_literal ]) = (cast_expression "(int)piStack_5d0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x374) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x374) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x374)" * (cast_expression "(undefined4 *)(iVar2 + 0x374)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x374)" ( (binary_expression "iVar2 + 0x374" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12[0x3d] = uVar10 | 0x10;" (assignment_expression "piVar12[0x3d] = uVar10 | 0x10" (subscript_expression "piVar12[0x3d]" identifier [ number_literal ]) = (binary_expression "uVar10 | 0x10" identifier | number_literal)) ;) (expression_statement "piVar12[2] = uVar9 | 0x1000;" (assignment_expression "piVar12[2] = uVar9 | 0x1000" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = (binary_expression "uVar9 | 0x1000" identifier | number_literal)) ;) (expression_statement "param_3 = piStack_5d0;" (assignment_expression "param_3 = piStack_5d0" identifier = identifier) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002ce24;" goto statement_identifier ;) })) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + -0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + -0x184)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + -0x184" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);" statement_identifier : (expression_statement "pcVar22 = *(code **)(pcVar24 + 0x26d2c);" (assignment_expression "pcVar22 = *(code **)(pcVar24 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002c938;" goto statement_identifier ;) (labeled_statement "LAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);" statement_identifier : (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" identifier = (pointer_expression "*(int **)(iVar2 + 0x14c)" * (cast_expression "(int **)(iVar2 + 0x14c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);" statement_identifier : (expression_statement "FUN_0002b068(iVar2,param_3);" (call_expression "FUN_0002b068(iVar2,param_3)" identifier (argument_list "(iVar2,param_3)" ( identifier , identifier ))) ;)) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = piVar16;" (assignment_expression "unaff_s2 = piVar16" identifier = identifier) ;) (if_statement "if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }" { (expression_statement "pcVar22 = *(code **)(pcVar24 + 0x26d2c);" (assignment_expression "pcVar22 = *(code **)(pcVar24 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);" statement_identifier : (expression_statement "(*pcVar22)(iVar2,piVar16);" (call_expression "(*pcVar22)(iVar2,piVar16)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(iVar2,piVar16)" ( identifier , identifier ))) ;)) (expression_statement "unaff_s2 = piVar16;" (assignment_expression "unaff_s2 = piVar16" identifier = identifier) ;) })) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })))
(translation_unit "void png_handle_cHRM(png_structrp png_ptr,png_inforp info_ptr,png_uint_32 length)\n\n{\n  ushort uVar1;\n  png_uint_32 *ppVar2;\n  undefined *puVar3;\n  int iVar4;\n  png_fixed_point pVar5;\n  png_fixed_point pVar6;\n  png_fixed_point pVar7;\n  png_fixed_point pVar8;\n  png_fixed_point pVar9;\n  png_fixed_point pVar10;\n  png_fixed_point pVar11;\n  char *pcVar12;\n  int iVar13;\n  png_int_32 *ppVar14;\n  png_charp pcVar15;\n  uint uVar16;\n  uint uVar17;\n  png_structrp png_ptr_00;\n  png_structrp ppVar18;\n  png_uint_32 pVar19;\n  png_const_bytep buf_00;\n  png_inforp ppVar20;\n  png_inforp info_ptr_00;\n  png_uint_32 pVar21;\n  png_inforp ppVar22;\n  png_uint_32 pVar23;\n  int iVar24;\n  png_structrp unaff_s0;\n  int *piVar25;\n  png_inforp ppVar26;\n  png_inforp unaff_s2;\n  png_structrp unaff_s3;\n  png_fixed_point *profile;\n  png_fixed_point *ppVar27;\n  png_inforp profile_00;\n  png_uint_16p *read_buffer;\n  png_inforp unaff_s6;\n  undefined *puVar28;\n  code *pcVar29;\n  undefined *puVar30;\n  code *finish;\n  png_structrp unaff_s8;\n  code *pcVar31;\n  png_alloc_size_t *in_stack_fffffa24;\n  png_inforp ppStack_5d0;\n  png_colorspacerp ppStack_5c4;\n  png_int_32 *ppStack_5b0;\n  png_info apStack_5ac [3];\n  int iStack_d4;\n  png_structrp ppStack_d0;\n  png_inforp ppStack_cc;\n  png_inforp ppStack_c8;\n  png_structrp ppStack_c4;\n  png_inforp appStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  png_uint_32 pStack_8c;\n  png_structrp ppStack_88;\n  undefined *puStack_84;\n  png_inforp ppStack_80;\n  code *pcStack_7c;\n  png_xy xy;\n  png_byte buf [32];\n  \n  puVar3 = PTR___stack_chk_guard_000534bc;\n  iVar24 = *(int *)PTR___stack_chk_guard_000534bc;\n  png_ptr_00 = png_ptr;\n  if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (iVar24 == *(int *)puVar3) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = png_ptr;\n    unaff_s2 = info_ptr;\n  }\n  pcVar31 = png_handle_sRGB;\n  ppVar20 = (png_inforp)(PTR_s_nt_0005301c + 0x6a4);\n  puVar28 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar30 = puVar28 + 0x2ea14;\n  puStack_84 = puVar3;\n  ppVar26 = *(png_inforp *)(puVar28 + 0x26ee0);\n  pStack_8c = ppVar26->width;\n  puStack_98 = puVar30;\n  ppStack_88 = unaff_s0;\n  ppStack_80 = unaff_s2;\n  pcStack_7c = pcVar31;\n  if ((png_ptr_00->mode & 1) == 0) {\n    info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar28 + 0x26f40))();\n    ppVar18 = png_ptr_00;\n  }\n  else {\n    ppVar18 = png_ptr_00;\n    if ((png_ptr_00->mode & 6) == 0) {\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = png_ptr_00;\n    unaff_s2 = ppVar20;\n    puVar30 = puStack_98;\n    if (pStack_8c == ppVar26->width) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(puVar30 + -0x7b6c);\n  (*pcVar29)();\n  finish = pcVar29 + 0x2e880;\n  piVar25 = *(int **)(pcVar29 + 0x26d4c);\n  profile_00 = (png_inforp)(ppVar18->mode & 1);\n  iStack_d4 = *piVar25;\n  ppVar20 = unaff_s2;\n  pcVar31 = finish;\n  ppStack_d0 = unaff_s0;\n  ppStack_cc = ppVar26;\n  ppStack_c8 = unaff_s2;\n  ppStack_c4 = unaff_s3;\n  appStack_a0[0] = (png_inforp)length;\n  if (profile_00 == (png_inforp)0x0) goto LAB_0002cd34;\n  if ((ppVar18->mode & 6) != 0) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }\n  if (length < (png_inforp)0xe) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }\n  uVar1 = (ppVar18->colorspace).flags;\n  if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar18,length);\n    goto LAB_0002c8bc;\n  }\n  if ((uVar1 & 4) == 0) {\n    ppVar26 = (png_inforp)0x51;\n    if (length < (png_inforp)0x51) {\n      ppVar26 = (png_inforp)length;\n    }\n    ppVar20 = apStack_5ac;\n    ppVar22 = ppVar26;\n    png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26);\n    appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26);\n    if (appStack_a0[0] < (png_inforp)0xb) {\n      FUN_0002c94c(ppVar18);\n      return;\n    }\n    pcVar12 = (char *)((int)&apStack_5ac[0].width + 1);\n    length = (png_uint_32)ppVar22;\n    if (apStack_5ac[0].width._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\n  }\nLAB_0002c900:\n  png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n  (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n  png_colorspace_sync(ppVar18,info_ptr_00);\nLAB_0002c934:\n  pcVar31 = *(code **)(finish + -0x7b54);\n  do {\n    (*pcVar31)(ppVar18,ppVar26);\n    unaff_s2 = ppVar26;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    } while (ppVar26 == (png_inforp)0x0);\n    pcVar31 = *(code **)(finish + -0x7b54);\n  } while( true );\n}\n\n" (function_definition "void png_handle_cHRM(png_structrp png_ptr,png_inforp info_ptr,png_uint_32 length)\n\n{\n  ushort uVar1;\n  png_uint_32 *ppVar2;\n  undefined *puVar3;\n  int iVar4;\n  png_fixed_point pVar5;\n  png_fixed_point pVar6;\n  png_fixed_point pVar7;\n  png_fixed_point pVar8;\n  png_fixed_point pVar9;\n  png_fixed_point pVar10;\n  png_fixed_point pVar11;\n  char *pcVar12;\n  int iVar13;\n  png_int_32 *ppVar14;\n  png_charp pcVar15;\n  uint uVar16;\n  uint uVar17;\n  png_structrp png_ptr_00;\n  png_structrp ppVar18;\n  png_uint_32 pVar19;\n  png_const_bytep buf_00;\n  png_inforp ppVar20;\n  png_inforp info_ptr_00;\n  png_uint_32 pVar21;\n  png_inforp ppVar22;\n  png_uint_32 pVar23;\n  int iVar24;\n  png_structrp unaff_s0;\n  int *piVar25;\n  png_inforp ppVar26;\n  png_inforp unaff_s2;\n  png_structrp unaff_s3;\n  png_fixed_point *profile;\n  png_fixed_point *ppVar27;\n  png_inforp profile_00;\n  png_uint_16p *read_buffer;\n  png_inforp unaff_s6;\n  undefined *puVar28;\n  code *pcVar29;\n  undefined *puVar30;\n  code *finish;\n  png_structrp unaff_s8;\n  code *pcVar31;\n  png_alloc_size_t *in_stack_fffffa24;\n  png_inforp ppStack_5d0;\n  png_colorspacerp ppStack_5c4;\n  png_int_32 *ppStack_5b0;\n  png_info apStack_5ac [3];\n  int iStack_d4;\n  png_structrp ppStack_d0;\n  png_inforp ppStack_cc;\n  png_inforp ppStack_c8;\n  png_structrp ppStack_c4;\n  png_inforp appStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  png_uint_32 pStack_8c;\n  png_structrp ppStack_88;\n  undefined *puStack_84;\n  png_inforp ppStack_80;\n  code *pcStack_7c;\n  png_xy xy;\n  png_byte buf [32];\n  \n  puVar3 = PTR___stack_chk_guard_000534bc;\n  iVar24 = *(int *)PTR___stack_chk_guard_000534bc;\n  png_ptr_00 = png_ptr;\n  if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (iVar24 == *(int *)puVar3) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = png_ptr;\n    unaff_s2 = info_ptr;\n  }\n  pcVar31 = png_handle_sRGB;\n  ppVar20 = (png_inforp)(PTR_s_nt_0005301c + 0x6a4);\n  puVar28 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar30 = puVar28 + 0x2ea14;\n  puStack_84 = puVar3;\n  ppVar26 = *(png_inforp *)(puVar28 + 0x26ee0);\n  pStack_8c = ppVar26->width;\n  puStack_98 = puVar30;\n  ppStack_88 = unaff_s0;\n  ppStack_80 = unaff_s2;\n  pcStack_7c = pcVar31;\n  if ((png_ptr_00->mode & 1) == 0) {\n    info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar28 + 0x26f40))();\n    ppVar18 = png_ptr_00;\n  }\n  else {\n    ppVar18 = png_ptr_00;\n    if ((png_ptr_00->mode & 6) == 0) {\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = png_ptr_00;\n    unaff_s2 = ppVar20;\n    puVar30 = puStack_98;\n    if (pStack_8c == ppVar26->width) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(puVar30 + -0x7b6c);\n  (*pcVar29)();\n  finish = pcVar29 + 0x2e880;\n  piVar25 = *(int **)(pcVar29 + 0x26d4c);\n  profile_00 = (png_inforp)(ppVar18->mode & 1);\n  iStack_d4 = *piVar25;\n  ppVar20 = unaff_s2;\n  pcVar31 = finish;\n  ppStack_d0 = unaff_s0;\n  ppStack_cc = ppVar26;\n  ppStack_c8 = unaff_s2;\n  ppStack_c4 = unaff_s3;\n  appStack_a0[0] = (png_inforp)length;\n  if (profile_00 == (png_inforp)0x0) goto LAB_0002cd34;\n  if ((ppVar18->mode & 6) != 0) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }\n  if (length < (png_inforp)0xe) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }\n  uVar1 = (ppVar18->colorspace).flags;\n  if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar18,length);\n    goto LAB_0002c8bc;\n  }\n  if ((uVar1 & 4) == 0) {\n    ppVar26 = (png_inforp)0x51;\n    if (length < (png_inforp)0x51) {\n      ppVar26 = (png_inforp)length;\n    }\n    ppVar20 = apStack_5ac;\n    ppVar22 = ppVar26;\n    png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26);\n    appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26);\n    if (appStack_a0[0] < (png_inforp)0xb) {\n      FUN_0002c94c(ppVar18);\n      return;\n    }\n    pcVar12 = (char *)((int)&apStack_5ac[0].width + 1);\n    length = (png_uint_32)ppVar22;\n    if (apStack_5ac[0].width._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\n  }\nLAB_0002c900:\n  png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n  (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n  png_colorspace_sync(ppVar18,info_ptr_00);\nLAB_0002c934:\n  pcVar31 = *(code **)(finish + -0x7b54);\n  do {\n    (*pcVar31)(ppVar18,ppVar26);\n    unaff_s2 = ppVar26;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    } while (ppVar26 == (png_inforp)0x0);\n    pcVar31 = *(code **)(finish + -0x7b54);\n  } while( true );\n}" primitive_type (function_declarator "png_handle_cHRM(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  png_uint_32 *ppVar2;\n  undefined *puVar3;\n  int iVar4;\n  png_fixed_point pVar5;\n  png_fixed_point pVar6;\n  png_fixed_point pVar7;\n  png_fixed_point pVar8;\n  png_fixed_point pVar9;\n  png_fixed_point pVar10;\n  png_fixed_point pVar11;\n  char *pcVar12;\n  int iVar13;\n  png_int_32 *ppVar14;\n  png_charp pcVar15;\n  uint uVar16;\n  uint uVar17;\n  png_structrp png_ptr_00;\n  png_structrp ppVar18;\n  png_uint_32 pVar19;\n  png_const_bytep buf_00;\n  png_inforp ppVar20;\n  png_inforp info_ptr_00;\n  png_uint_32 pVar21;\n  png_inforp ppVar22;\n  png_uint_32 pVar23;\n  int iVar24;\n  png_structrp unaff_s0;\n  int *piVar25;\n  png_inforp ppVar26;\n  png_inforp unaff_s2;\n  png_structrp unaff_s3;\n  png_fixed_point *profile;\n  png_fixed_point *ppVar27;\n  png_inforp profile_00;\n  png_uint_16p *read_buffer;\n  png_inforp unaff_s6;\n  undefined *puVar28;\n  code *pcVar29;\n  undefined *puVar30;\n  code *finish;\n  png_structrp unaff_s8;\n  code *pcVar31;\n  png_alloc_size_t *in_stack_fffffa24;\n  png_inforp ppStack_5d0;\n  png_colorspacerp ppStack_5c4;\n  png_int_32 *ppStack_5b0;\n  png_info apStack_5ac [3];\n  int iStack_d4;\n  png_structrp ppStack_d0;\n  png_inforp ppStack_cc;\n  png_inforp ppStack_c8;\n  png_structrp ppStack_c4;\n  png_inforp appStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  png_uint_32 pStack_8c;\n  png_structrp ppStack_88;\n  undefined *puStack_84;\n  png_inforp ppStack_80;\n  code *pcStack_7c;\n  png_xy xy;\n  png_byte buf [32];\n  \n  puVar3 = PTR___stack_chk_guard_000534bc;\n  iVar24 = *(int *)PTR___stack_chk_guard_000534bc;\n  png_ptr_00 = png_ptr;\n  if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (iVar24 == *(int *)puVar3) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = png_ptr;\n    unaff_s2 = info_ptr;\n  }\n  pcVar31 = png_handle_sRGB;\n  ppVar20 = (png_inforp)(PTR_s_nt_0005301c + 0x6a4);\n  puVar28 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar30 = puVar28 + 0x2ea14;\n  puStack_84 = puVar3;\n  ppVar26 = *(png_inforp *)(puVar28 + 0x26ee0);\n  pStack_8c = ppVar26->width;\n  puStack_98 = puVar30;\n  ppStack_88 = unaff_s0;\n  ppStack_80 = unaff_s2;\n  pcStack_7c = pcVar31;\n  if ((png_ptr_00->mode & 1) == 0) {\n    info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar28 + 0x26f40))();\n    ppVar18 = png_ptr_00;\n  }\n  else {\n    ppVar18 = png_ptr_00;\n    if ((png_ptr_00->mode & 6) == 0) {\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = png_ptr_00;\n    unaff_s2 = ppVar20;\n    puVar30 = puStack_98;\n    if (pStack_8c == ppVar26->width) {\n      return;\n    }\n  }\n  pcVar29 = *(code **)(puVar30 + -0x7b6c);\n  (*pcVar29)();\n  finish = pcVar29 + 0x2e880;\n  piVar25 = *(int **)(pcVar29 + 0x26d4c);\n  profile_00 = (png_inforp)(ppVar18->mode & 1);\n  iStack_d4 = *piVar25;\n  ppVar20 = unaff_s2;\n  pcVar31 = finish;\n  ppStack_d0 = unaff_s0;\n  ppStack_cc = ppVar26;\n  ppStack_c8 = unaff_s2;\n  ppStack_c4 = unaff_s3;\n  appStack_a0[0] = (png_inforp)length;\n  if (profile_00 == (png_inforp)0x0) goto LAB_0002cd34;\n  if ((ppVar18->mode & 6) != 0) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }\n  if (length < (png_inforp)0xe) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }\n  uVar1 = (ppVar18->colorspace).flags;\n  if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar18,length);\n    goto LAB_0002c8bc;\n  }\n  if ((uVar1 & 4) == 0) {\n    ppVar26 = (png_inforp)0x51;\n    if (length < (png_inforp)0x51) {\n      ppVar26 = (png_inforp)length;\n    }\n    ppVar20 = apStack_5ac;\n    ppVar22 = ppVar26;\n    png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26);\n    appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26);\n    if (appStack_a0[0] < (png_inforp)0xb) {\n      FUN_0002c94c(ppVar18);\n      return;\n    }\n    pcVar12 = (char *)((int)&apStack_5ac[0].width + 1);\n    length = (png_uint_32)ppVar22;\n    if (apStack_5ac[0].width._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\n  }\nLAB_0002c900:\n  png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n  (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n  png_colorspace_sync(ppVar18,info_ptr_00);\nLAB_0002c934:\n  pcVar31 = *(code **)(finish + -0x7b54);\n  do {\n    (*pcVar31)(ppVar18,ppVar26);\n    unaff_s2 = ppVar26;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    } while (ppVar26 == (png_inforp)0x0);\n    pcVar31 = *(code **)(finish + -0x7b54);\n  } while( true );\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "png_uint_32 *ppVar2;" type_identifier (pointer_declarator "*ppVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "png_fixed_point pVar5;" type_identifier identifier ;) (declaration "png_fixed_point pVar6;" type_identifier identifier ;) (declaration "png_fixed_point pVar7;" type_identifier identifier ;) (declaration "png_fixed_point pVar8;" type_identifier identifier ;) (declaration "png_fixed_point pVar9;" type_identifier identifier ;) (declaration "png_fixed_point pVar10;" type_identifier identifier ;) (declaration "png_fixed_point pVar11;" type_identifier identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "png_int_32 *ppVar14;" type_identifier (pointer_declarator "*ppVar14" * identifier) ;) (declaration "png_charp pcVar15;" type_identifier identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "png_structrp png_ptr_00;" type_identifier identifier ;) (declaration "png_structrp ppVar18;" type_identifier identifier ;) (declaration "png_uint_32 pVar19;" type_identifier identifier ;) (declaration "png_const_bytep buf_00;" type_identifier identifier ;) (declaration "png_inforp ppVar20;" type_identifier identifier ;) (declaration "png_inforp info_ptr_00;" type_identifier identifier ;) (declaration "png_uint_32 pVar21;" type_identifier identifier ;) (declaration "png_inforp ppVar22;" type_identifier identifier ;) (declaration "png_uint_32 pVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "png_structrp unaff_s0;" type_identifier identifier ;) (declaration "int *piVar25;" primitive_type (pointer_declarator "*piVar25" * identifier) ;) (declaration "png_inforp ppVar26;" type_identifier identifier ;) (declaration "png_inforp unaff_s2;" type_identifier identifier ;) (declaration "png_structrp unaff_s3;" type_identifier identifier ;) (declaration "png_fixed_point *profile;" type_identifier (pointer_declarator "*profile" * identifier) ;) (declaration "png_fixed_point *ppVar27;" type_identifier (pointer_declarator "*ppVar27" * identifier) ;) (declaration "png_inforp profile_00;" type_identifier identifier ;) (declaration "png_uint_16p *read_buffer;" type_identifier (pointer_declarator "*read_buffer" * identifier) ;) (declaration "png_inforp unaff_s6;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "code *pcVar29;" type_identifier (pointer_declarator "*pcVar29" * identifier) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "code *finish;" type_identifier (pointer_declarator "*finish" * identifier) ;) (declaration "png_structrp unaff_s8;" type_identifier identifier ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "png_alloc_size_t *in_stack_fffffa24;" type_identifier (pointer_declarator "*in_stack_fffffa24" * identifier) ;) (declaration "png_inforp ppStack_5d0;" type_identifier identifier ;) (declaration "png_colorspacerp ppStack_5c4;" type_identifier identifier ;) (declaration "png_int_32 *ppStack_5b0;" type_identifier (pointer_declarator "*ppStack_5b0" * identifier) ;) (declaration "png_info apStack_5ac [3];" type_identifier (array_declarator "apStack_5ac [3]" identifier [ number_literal ]) ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "png_structrp ppStack_d0;" type_identifier identifier ;) (declaration "png_inforp ppStack_cc;" type_identifier identifier ;) (declaration "png_inforp ppStack_c8;" type_identifier identifier ;) (declaration "png_structrp ppStack_c4;" type_identifier identifier ;) (declaration "png_inforp appStack_a0 [2];" type_identifier (array_declarator "appStack_a0 [2]" identifier [ number_literal ]) ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "byte bStack_8d;" type_identifier identifier ;) (declaration "png_uint_32 pStack_8c;" type_identifier identifier ;) (declaration "png_structrp ppStack_88;" type_identifier identifier ;) (declaration "undefined *puStack_84;" type_identifier (pointer_declarator "*puStack_84" * identifier) ;) (declaration "png_inforp ppStack_80;" type_identifier identifier ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "png_xy xy;" type_identifier identifier ;) (declaration "png_byte buf [32];" type_identifier (array_declarator "buf [32]" identifier [ number_literal ]) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar3 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "iVar24 = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "iVar24 = *(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 "png_ptr_00 = png_ptr;" (assignment_expression "png_ptr_00 = png_ptr" identifier = identifier) ;) (if_statement "if ((png_ptr->mode & 1) != 0) {\n    if ((png_ptr->mode & 6) == 0) {\n      if (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (iVar24 == *(int *)puVar3) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = png_ptr;\n    unaff_s2 = info_ptr;\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 (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (iVar24 == *(int *)puVar3) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = png_ptr;\n    unaff_s2 = info_ptr;\n  }" { (if_statement "if ((png_ptr->mode & 6) == 0) {\n      if (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 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 (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }\n    }" { (if_statement "if (length == 0x20) {\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }" if (parenthesized_expression "(length == 0x20)" ( (binary_expression "length == 0x20" identifier == number_literal) )) (compound_statement "{\n        unaff_s3 = (png_structrp)buf;\n        png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);\n        buf_00 = (png_const_bytep)0x0;\n        iVar4 = png_crc_finish(png_ptr,0);\n        if (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }" { (expression_statement "unaff_s3 = (png_structrp)buf;" (assignment_expression "unaff_s3 = (png_structrp)buf" identifier = (cast_expression "(png_structrp)buf" ( (type_descriptor "png_structrp" type_identifier) ) identifier)) ;) (expression_statement "png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20);" (call_expression "png_crc_read(png_ptr,(png_bytep)unaff_s3,0x20)" identifier (argument_list "(png_ptr,(png_bytep)unaff_s3,0x20)" ( identifier , (cast_expression "(png_bytep)unaff_s3" ( (type_descriptor "png_bytep" type_identifier) ) identifier) , number_literal ))) ;) (expression_statement "buf_00 = (png_const_bytep)0x0;" (assignment_expression "buf_00 = (png_const_bytep)0x0" identifier = (cast_expression "(png_const_bytep)0x0" ( (type_descriptor "png_const_bytep" type_identifier) ) number_literal)) ;) (expression_statement "iVar4 = png_crc_finish(png_ptr,0);" (assignment_expression "iVar4 = 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 (iVar4 == 0) {\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          pVar5 = png_get_fixed_point(unaff_s3,buf_00);\n          xy.whitex = pVar5;\n          pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);\n          xy.whitey = pVar6;\n          pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);\n          xy.redx = pVar7;\n          pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);\n          xy.redy = pVar8;\n          pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);\n          xy.greenx = pVar9;\n          pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);\n          xy.greeny = pVar10;\n          pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);\n          xy.bluex = pVar11;\n          xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);\n          if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" { (expression_statement "pVar5 = png_get_fixed_point(unaff_s3,buf_00);" (assignment_expression "pVar5 = png_get_fixed_point(unaff_s3,buf_00)" identifier = (call_expression "png_get_fixed_point(unaff_s3,buf_00)" identifier (argument_list "(unaff_s3,buf_00)" ( identifier , identifier )))) ;) (expression_statement "xy.whitex = pVar5;" (assignment_expression "xy.whitex = pVar5" (field_expression "xy.whitex" identifier . field_identifier) = identifier) ;) (expression_statement "pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00);" (assignment_expression "pVar6 = png_get_fixed_point((png_structrp)(buf + 4),buf_00)" identifier = (call_expression "png_get_fixed_point((png_structrp)(buf + 4),buf_00)" identifier (argument_list "((png_structrp)(buf + 4),buf_00)" ( (call_expression "(png_structrp)(buf + 4)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(buf + 4)" ( (binary_expression "buf + 4" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "xy.whitey = pVar6;" (assignment_expression "xy.whitey = pVar6" (field_expression "xy.whitey" identifier . field_identifier) = identifier) ;) (expression_statement "pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00);" (assignment_expression "pVar7 = png_get_fixed_point((png_structrp)(buf + 8),buf_00)" identifier = (call_expression "png_get_fixed_point((png_structrp)(buf + 8),buf_00)" identifier (argument_list "((png_structrp)(buf + 8),buf_00)" ( (call_expression "(png_structrp)(buf + 8)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(buf + 8)" ( (binary_expression "buf + 8" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "xy.redx = pVar7;" (assignment_expression "xy.redx = pVar7" (field_expression "xy.redx" identifier . field_identifier) = identifier) ;) (expression_statement "pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00);" (assignment_expression "pVar8 = png_get_fixed_point((png_structrp)(buf + 0xc),buf_00)" identifier = (call_expression "png_get_fixed_point((png_structrp)(buf + 0xc),buf_00)" identifier (argument_list "((png_structrp)(buf + 0xc),buf_00)" ( (call_expression "(png_structrp)(buf + 0xc)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(buf + 0xc)" ( (binary_expression "buf + 0xc" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "xy.redy = pVar8;" (assignment_expression "xy.redy = pVar8" (field_expression "xy.redy" identifier . field_identifier) = identifier) ;) (expression_statement "pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00);" (assignment_expression "pVar9 = png_get_fixed_point((png_structrp)(buf + 0x10),buf_00)" identifier = (call_expression "png_get_fixed_point((png_structrp)(buf + 0x10),buf_00)" identifier (argument_list "((png_structrp)(buf + 0x10),buf_00)" ( (call_expression "(png_structrp)(buf + 0x10)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(buf + 0x10)" ( (binary_expression "buf + 0x10" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "xy.greenx = pVar9;" (assignment_expression "xy.greenx = pVar9" (field_expression "xy.greenx" identifier . field_identifier) = identifier) ;) (expression_statement "pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00);" (assignment_expression "pVar10 = png_get_fixed_point((png_structrp)(buf + 0x14),buf_00)" identifier = (call_expression "png_get_fixed_point((png_structrp)(buf + 0x14),buf_00)" identifier (argument_list "((png_structrp)(buf + 0x14),buf_00)" ( (call_expression "(png_structrp)(buf + 0x14)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(buf + 0x14)" ( (binary_expression "buf + 0x14" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "xy.greeny = pVar10;" (assignment_expression "xy.greeny = pVar10" (field_expression "xy.greeny" identifier . field_identifier) = identifier) ;) (expression_statement "pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00);" (assignment_expression "pVar11 = png_get_fixed_point((png_structrp)(buf + 0x18),buf_00)" identifier = (call_expression "png_get_fixed_point((png_structrp)(buf + 0x18),buf_00)" identifier (argument_list "((png_structrp)(buf + 0x18),buf_00)" ( (call_expression "(png_structrp)(buf + 0x18)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(buf + 0x18)" ( (binary_expression "buf + 0x18" identifier + number_literal) ))) , identifier )))) ;) (expression_statement "xy.bluex = pVar11;" (assignment_expression "xy.bluex = pVar11" (field_expression "xy.bluex" identifier . field_identifier) = identifier) ;) (expression_statement "xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00);" (assignment_expression "xy.bluey = png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00)" (field_expression "xy.bluey" identifier . field_identifier) = (call_expression "png_get_fixed_point((png_structrp)(buf + 0x1c),buf_00)" identifier (argument_list "((png_structrp)(buf + 0x1c),buf_00)" ( (call_expression "(png_structrp)(buf + 0x1c)" (parenthesized_expression "(png_structrp)" ( identifier )) (argument_list "(buf + 0x1c)" ( (binary_expression "buf + 0x1c" identifier + number_literal) ))) , identifier )))) ;) (if_statement "if (((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))) {\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" if (parenthesized_expression "(((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1))))))" ( (binary_expression "((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))) ||\n             ((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))" (parenthesized_expression "((((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1))))" ( (binary_expression "(((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)) ||\n              ((pVar8 == -1 || (pVar9 == -1)))" (parenthesized_expression "(((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1))" ( (binary_expression "((pVar5 == -1) || (pVar6 == -1)) || (pVar7 == -1)" (parenthesized_expression "((pVar5 == -1) || (pVar6 == -1))" ( (binary_expression "(pVar5 == -1) || (pVar6 == -1)" (parenthesized_expression "(pVar5 == -1)" ( (binary_expression "pVar5 == -1" identifier == number_literal) )) || (parenthesized_expression "(pVar6 == -1)" ( (binary_expression "pVar6 == -1" identifier == number_literal) ))) )) || (parenthesized_expression "(pVar7 == -1)" ( (binary_expression "pVar7 == -1" identifier == number_literal) ))) )) || (parenthesized_expression "((pVar8 == -1 || (pVar9 == -1)))" ( (parenthesized_expression "(pVar8 == -1 || (pVar9 == -1))" ( (binary_expression "pVar8 == -1 || (pVar9 == -1)" (binary_expression "pVar8 == -1" identifier == number_literal) || (parenthesized_expression "(pVar9 == -1)" ( (binary_expression "pVar9 == -1" identifier == number_literal) ))) )) ))) )) || (parenthesized_expression "((pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))))" ( (parenthesized_expression "(pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1))))" ( (binary_expression "pVar10 == -1 || ((pVar11 == -1 || (xy.bluey == -1)))" (binary_expression "pVar10 == -1" identifier == number_literal) || (parenthesized_expression "((pVar11 == -1 || (xy.bluey == -1)))" ( (parenthesized_expression "(pVar11 == -1 || (xy.bluey == -1))" ( (binary_expression "pVar11 == -1 || (xy.bluey == -1)" (binary_expression "pVar11 == -1" identifier == number_literal) || (parenthesized_expression "(xy.bluey == -1)" ( (binary_expression "xy.bluey == -1" (field_expression "xy.bluey" identifier . field_identifier) == number_literal) ))) )) ))) )) ))) )) (compound_statement "{\n            png_ptr_00 = png_ptr;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);\n          }" { (expression_statement "png_ptr_00 = png_ptr;" (assignment_expression "png_ptr_00 = png_ptr" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x70c)" (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 + 0x70c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x70c" identifier + number_literal) ))) ;) }) (else_clause "else {\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" else (compound_statement "{\n            uVar1 = (png_ptr->colorspace).flags;\n            png_ptr_00 = png_ptr;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" { (expression_statement "uVar1 = (png_ptr->colorspace).flags;" (assignment_expression "uVar1 = (png_ptr->colorspace).flags" identifier = (field_expression "(png_ptr->colorspace).flags" (parenthesized_expression "(png_ptr->colorspace)" ( (field_expression "png_ptr->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "png_ptr_00 = png_ptr;" (assignment_expression "png_ptr_00 = png_ptr" identifier = identifier) ;) (if_statement "if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -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                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }" { (if_statement "if ((uVar1 & 0x10) == 0) {\n                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }\n              else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -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                (png_ptr->colorspace).flags = uVar1 | 0x10;\n                length = (png_uint_32)&xy;\n                png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);\n                png_colorspace_sync(png_ptr,info_ptr);\n              }" { (expression_statement "(png_ptr->colorspace).flags = uVar1 | 0x10;" (assignment_expression "(png_ptr->colorspace).flags = uVar1 | 0x10" (field_expression "(png_ptr->colorspace).flags" (parenthesized_expression "(png_ptr->colorspace)" ( (field_expression "png_ptr->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x10" identifier | number_literal)) ;) (expression_statement "length = (png_uint_32)&xy;" (assignment_expression "length = (png_uint_32)&xy" identifier = (binary_expression "(png_uint_32)&xy" (parenthesized_expression "(png_uint_32)" ( identifier )) & identifier)) ;) (expression_statement "png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1);" (call_expression "png_colorspace_set_chromaticities(png_ptr,&png_ptr->colorspace,(png_xy *)length,1)" identifier (argument_list "(png_ptr,&png_ptr->colorspace,(png_xy *)length,1)" ( identifier , (pointer_expression "&png_ptr->colorspace" & (field_expression "png_ptr->colorspace" identifier -> field_identifier)) , (cast_expression "(png_xy *)length" ( (type_descriptor "png_xy *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (expression_statement "png_colorspace_sync(png_ptr,info_ptr);" (call_expression "png_colorspace_sync(png_ptr,info_ptr)" identifier (argument_list "(png_ptr,info_ptr)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }" else (compound_statement "{\n                (png_ptr->colorspace).flags = uVar1 | 0x8000;\n                png_colorspace_sync(png_ptr,info_ptr);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);\n              }" { (expression_statement "(png_ptr->colorspace).flags = uVar1 | 0x8000;" (assignment_expression "(png_ptr->colorspace).flags = uVar1 | 0x8000" (field_expression "(png_ptr->colorspace).flags" (parenthesized_expression "(png_ptr->colorspace)" ( (field_expression "png_ptr->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "png_colorspace_sync(png_ptr,info_ptr);" (call_expression "png_colorspace_sync(png_ptr,info_ptr)" identifier (argument_list "(png_ptr,info_ptr)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + -0x1a18)" (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 + -0x1a18)" ( identifier , (binary_expression "PTR_s_nt_0005301c + -0x1a18" identifier + number_literal) ))) ;) }))) })) }))) })) }) (else_clause "else {\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\n      }" else (compound_statement "{\n        png_crc_finish(png_ptr,length);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x69c);\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 + 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) ))) ;) }))) }) (else_clause "else {\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\n    }" else (compound_statement "{\n      png_crc_finish(png_ptr,length);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(png_ptr,PTR_s_nt_0005301c + 0x68c);\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) ))) ;) }))) (if_statement "if (iVar24 == *(int *)puVar3) {\n      return;\n    }" if (parenthesized_expression "(iVar24 == *(int *)puVar3)" ( (binary_expression "iVar24 == *(int *)puVar3" identifier == (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (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_s0 = png_ptr;" (assignment_expression "unaff_s0 = png_ptr" identifier = identifier) ;) (expression_statement "unaff_s2 = info_ptr;" (assignment_expression "unaff_s2 = info_ptr" identifier = identifier) ;) })) (expression_statement "pcVar31 = png_handle_sRGB;" (assignment_expression "pcVar31 = png_handle_sRGB" identifier = identifier) ;) (expression_statement "ppVar20 = (png_inforp)(PTR_s_nt_0005301c + 0x6a4);" (assignment_expression "ppVar20 = (png_inforp)(PTR_s_nt_0005301c + 0x6a4)" identifier = (call_expression "(png_inforp)(PTR_s_nt_0005301c + 0x6a4)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(PTR_s_nt_0005301c + 0x6a4)" ( (binary_expression "PTR_s_nt_0005301c + 0x6a4" identifier + number_literal) )))) ;) (expression_statement "puVar28 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar28 = 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 "puVar30 = puVar28 + 0x2ea14;" (assignment_expression "puVar30 = puVar28 + 0x2ea14" identifier = (binary_expression "puVar28 + 0x2ea14" identifier + number_literal)) ;) (expression_statement "puStack_84 = puVar3;" (assignment_expression "puStack_84 = puVar3" identifier = identifier) ;) (expression_statement "ppVar26 = *(png_inforp *)(puVar28 + 0x26ee0);" (assignment_expression "ppVar26 = *(png_inforp *)(puVar28 + 0x26ee0)" identifier = (pointer_expression "*(png_inforp *)(puVar28 + 0x26ee0)" * (cast_expression "(png_inforp *)(puVar28 + 0x26ee0)" ( (type_descriptor "png_inforp *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x26ee0)" ( (binary_expression "puVar28 + 0x26ee0" identifier + number_literal) ))))) ;) (expression_statement "pStack_8c = ppVar26->width;" (assignment_expression "pStack_8c = ppVar26->width" identifier = (field_expression "ppVar26->width" identifier -> field_identifier)) ;) (expression_statement "puStack_98 = puVar30;" (assignment_expression "puStack_98 = puVar30" identifier = identifier) ;) (expression_statement "ppStack_88 = unaff_s0;" (assignment_expression "ppStack_88 = unaff_s0" identifier = identifier) ;) (expression_statement "ppStack_80 = unaff_s2;" (assignment_expression "ppStack_80 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_7c = pcVar31;" (assignment_expression "pcStack_7c = pcVar31" identifier = identifier) ;) (if_statement "if ((png_ptr_00->mode & 1) == 0) {\n    info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar28 + 0x26f40))();\n    ppVar18 = png_ptr_00;\n  }\n  else {\n    ppVar18 = png_ptr_00;\n    if ((png_ptr_00->mode & 6) == 0) {\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = png_ptr_00;\n    unaff_s2 = ppVar20;\n    puVar30 = puStack_98;\n    if (pStack_8c == ppVar26->width) {\n      return;\n    }\n  }" if (parenthesized_expression "((png_ptr_00->mode & 1) == 0)" ( (binary_expression "(png_ptr_00->mode & 1) == 0" (parenthesized_expression "(png_ptr_00->mode & 1)" ( (binary_expression "png_ptr_00->mode & 1" (field_expression "png_ptr_00->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar28 + 0x26f40))();\n    ppVar18 = png_ptr_00;\n  }" { (expression_statement "info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4);" (assignment_expression "info_ptr_00 = (png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4)" identifier = (call_expression "(png_inforp)(*(int *)(puVar28 + 0x26a40) + 0x6a4)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(int *)(puVar28 + 0x26a40) + 0x6a4)" ( (binary_expression "*(int *)(puVar28 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(puVar28 + 0x26a40)" * (cast_expression "(int *)(puVar28 + 0x26a40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x26a40)" ( (binary_expression "puVar28 + 0x26a40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar28 + 0x26f40))();" (call_expression "(**(code **)(puVar28 + 0x26f40))()" (parenthesized_expression "(**(code **)(puVar28 + 0x26f40))" ( (pointer_expression "**(code **)(puVar28 + 0x26f40)" * (pointer_expression "*(code **)(puVar28 + 0x26f40)" * (cast_expression "(code **)(puVar28 + 0x26f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar28 + 0x26f40)" ( (binary_expression "puVar28 + 0x26f40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppVar18 = png_ptr_00;" (assignment_expression "ppVar18 = png_ptr_00" identifier = identifier) ;) }) (else_clause "else {\n    ppVar18 = png_ptr_00;\n    if ((png_ptr_00->mode & 6) == 0) {\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = png_ptr_00;\n    unaff_s2 = ppVar20;\n    puVar30 = puStack_98;\n    if (pStack_8c == ppVar26->width) {\n      return;\n    }\n  }" else (compound_statement "{\n    ppVar18 = png_ptr_00;\n    if ((png_ptr_00->mode & 6) == 0) {\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = png_ptr_00;\n    unaff_s2 = ppVar20;\n    puVar30 = puStack_98;\n    if (pStack_8c == ppVar26->width) {\n      return;\n    }\n  }" { (expression_statement "ppVar18 = png_ptr_00;" (assignment_expression "ppVar18 = png_ptr_00" identifier = identifier) ;) (if_statement "if ((png_ptr_00->mode & 6) == 0) {\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" if (parenthesized_expression "((png_ptr_00->mode & 6) == 0)" ( (binary_expression "(png_ptr_00->mode & 6) == 0" (parenthesized_expression "(png_ptr_00->mode & 6)" ( (binary_expression "png_ptr_00->mode & 6" (field_expression "png_ptr_00->mode" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }" { (if_statement "if ((png_inforp)length == (png_inforp)&DAT_00000001) {\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" if (parenthesized_expression "((png_inforp)length == (png_inforp)&DAT_00000001)" ( (binary_expression "(png_inforp)length == (png_inforp)&DAT_00000001" (binary_expression "(png_inforp)length == (png_inforp)" (cast_expression "(png_inforp)length" ( (type_descriptor "png_inforp" type_identifier) ) identifier) == (parenthesized_expression "(png_inforp)" ( identifier ))) & identifier) )) (compound_statement "{\n        png_crc_read(png_ptr_00,&bStack_8d,1);\n        info_ptr_00 = (png_inforp)0x0;\n        iVar24 = png_crc_finish(png_ptr_00,0);\n        if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }" { (expression_statement "png_crc_read(png_ptr_00,&bStack_8d,1);" (call_expression "png_crc_read(png_ptr_00,&bStack_8d,1)" identifier (argument_list "(png_ptr_00,&bStack_8d,1)" ( identifier , (pointer_expression "&bStack_8d" & identifier) , number_literal ))) ;) (expression_statement "info_ptr_00 = (png_inforp)0x0;" (assignment_expression "info_ptr_00 = (png_inforp)0x0" identifier = (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) ;) (expression_statement "iVar24 = png_crc_finish(png_ptr_00,0);" (assignment_expression "iVar24 = png_crc_finish(png_ptr_00,0)" identifier = (call_expression "png_crc_finish(png_ptr_00,0)" identifier (argument_list "(png_ptr_00,0)" ( identifier , number_literal )))) ;) (if_statement "if (iVar24 == 0) {\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar1 = (png_ptr_00->colorspace).flags;\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" { (expression_statement "uVar1 = (png_ptr_00->colorspace).flags;" (assignment_expression "uVar1 = (png_ptr_00->colorspace).flags" identifier = (field_expression "(png_ptr_00->colorspace).flags" (parenthesized_expression "(png_ptr_00->colorspace)" ( (field_expression "png_ptr_00->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -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              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }" { (if_statement "if ((uVar1 & 4) == 0) {\n              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }\n            else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -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              length = (png_uint_32)bStack_8d;\n              png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);\n              ppVar18 = png_ptr_00;\n              info_ptr_00 = ppVar20;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n            }" { (expression_statement "length = (png_uint_32)bStack_8d;" (assignment_expression "length = (png_uint_32)bStack_8d" identifier = (cast_expression "(png_uint_32)bStack_8d" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (expression_statement "png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length);" (call_expression "png_colorspace_set_sRGB(png_ptr_00,&png_ptr_00->colorspace,length)" identifier (argument_list "(png_ptr_00,&png_ptr_00->colorspace,length)" ( identifier , (pointer_expression "&png_ptr_00->colorspace" & (field_expression "png_ptr_00->colorspace" identifier -> field_identifier)) , identifier ))) ;) (expression_statement "ppVar18 = png_ptr_00;" (assignment_expression "ppVar18 = png_ptr_00" identifier = identifier) ;) (expression_statement "info_ptr_00 = ppVar20;" (assignment_expression "info_ptr_00 = ppVar20" identifier = identifier) ;) (expression_statement "png_colorspace_sync(png_ptr_00,ppVar20);" (call_expression "png_colorspace_sync(png_ptr_00,ppVar20)" identifier (argument_list "(png_ptr_00,ppVar20)" ( identifier , identifier ))) ;) }) (else_clause "else {\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" else (compound_statement "{\n              (png_ptr_00->colorspace).flags = uVar1 | 0x8000;\n              png_colorspace_sync(png_ptr_00,ppVar20);\n              info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              ppVar18 = png_ptr_00;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" { (expression_statement "(png_ptr_00->colorspace).flags = uVar1 | 0x8000;" (assignment_expression "(png_ptr_00->colorspace).flags = uVar1 | 0x8000" (field_expression "(png_ptr_00->colorspace).flags" (parenthesized_expression "(png_ptr_00->colorspace)" ( (field_expression "png_ptr_00->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "png_colorspace_sync(png_ptr_00,ppVar20);" (call_expression "png_colorspace_sync(png_ptr_00,ppVar20)" identifier (argument_list "(png_ptr_00,ppVar20)" ( identifier , identifier ))) ;) (expression_statement "info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);" (assignment_expression "info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" identifier = (call_expression "(png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppVar18 = png_ptr_00;" (assignment_expression "ppVar18 = png_ptr_00" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) })) }) (else_clause "else {\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" else (compound_statement "{\n        png_crc_finish(png_ptr_00,length);\n        info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" { (expression_statement "png_crc_finish(png_ptr_00,length);" (call_expression "png_crc_finish(png_ptr_00,length)" identifier (argument_list "(png_ptr_00,length)" ( identifier , identifier ))) ;) (expression_statement "info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);" (assignment_expression "info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" identifier = (call_expression "(png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" else (compound_statement "{\n      png_crc_finish(png_ptr_00,length);\n      info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" { (expression_statement "png_crc_finish(png_ptr_00,length);" (call_expression "png_crc_finish(png_ptr_00,length)" identifier (argument_list "(png_ptr_00,length)" ( identifier , identifier ))) ;) (expression_statement "info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);" (assignment_expression "info_ptr_00 = (png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" identifier = (call_expression "(png_inforp)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "unaff_s0 = png_ptr_00;" (assignment_expression "unaff_s0 = png_ptr_00" identifier = identifier) ;) (expression_statement "unaff_s2 = ppVar20;" (assignment_expression "unaff_s2 = ppVar20" identifier = identifier) ;) (expression_statement "puVar30 = puStack_98;" (assignment_expression "puVar30 = puStack_98" identifier = identifier) ;) (if_statement "if (pStack_8c == ppVar26->width) {\n      return;\n    }" if (parenthesized_expression "(pStack_8c == ppVar26->width)" ( (binary_expression "pStack_8c == ppVar26->width" identifier == (field_expression "ppVar26->width" identifier -> field_identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar29 = *(code **)(puVar30 + -0x7b6c);" (assignment_expression "pcVar29 = *(code **)(puVar30 + -0x7b6c)" identifier = (pointer_expression "*(code **)(puVar30 + -0x7b6c)" * (cast_expression "(code **)(puVar30 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + -0x7b6c)" ( (binary_expression "puVar30 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar29)();" (call_expression "(*pcVar29)()" (parenthesized_expression "(*pcVar29)" ( (pointer_expression "*pcVar29" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "finish = pcVar29 + 0x2e880;" (assignment_expression "finish = pcVar29 + 0x2e880" identifier = (binary_expression "pcVar29 + 0x2e880" identifier + number_literal)) ;) (expression_statement "piVar25 = *(int **)(pcVar29 + 0x26d4c);" (assignment_expression "piVar25 = *(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 "profile_00 = (png_inforp)(ppVar18->mode & 1);" (assignment_expression "profile_00 = (png_inforp)(ppVar18->mode & 1)" identifier = (call_expression "(png_inforp)(ppVar18->mode & 1)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(ppVar18->mode & 1)" ( (binary_expression "ppVar18->mode & 1" (field_expression "ppVar18->mode" identifier -> field_identifier) & number_literal) )))) ;) (expression_statement "iStack_d4 = *piVar25;" (assignment_expression "iStack_d4 = *piVar25" identifier = (pointer_expression "*piVar25" * identifier)) ;) (expression_statement "ppVar20 = unaff_s2;" (assignment_expression "ppVar20 = unaff_s2" identifier = identifier) ;) (expression_statement "pcVar31 = finish;" (assignment_expression "pcVar31 = finish" identifier = identifier) ;) (expression_statement "ppStack_d0 = unaff_s0;" (assignment_expression "ppStack_d0 = unaff_s0" identifier = identifier) ;) (expression_statement "ppStack_cc = ppVar26;" (assignment_expression "ppStack_cc = ppVar26" identifier = identifier) ;) (expression_statement "ppStack_c8 = unaff_s2;" (assignment_expression "ppStack_c8 = unaff_s2" identifier = identifier) ;) (expression_statement "ppStack_c4 = unaff_s3;" (assignment_expression "ppStack_c4 = unaff_s3" identifier = identifier) ;) (expression_statement "appStack_a0[0] = (png_inforp)length;" (assignment_expression "appStack_a0[0] = (png_inforp)length" (subscript_expression "appStack_a0[0]" identifier [ number_literal ]) = (cast_expression "(png_inforp)length" ( (type_descriptor "png_inforp" type_identifier) ) identifier)) ;) (if_statement "if (profile_00 == (png_inforp)0x0) goto LAB_0002cd34;" if (parenthesized_expression "(profile_00 == (png_inforp)0x0)" ( (binary_expression "profile_00 == (png_inforp)0x0" identifier == (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0002cd34;" goto statement_identifier ;)) (if_statement "if ((ppVar18->mode & 6) != 0) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }" if (parenthesized_expression "((ppVar18->mode & 6) != 0)" ( (binary_expression "(ppVar18->mode & 6) != 0" (parenthesized_expression "(ppVar18->mode & 6)" ( (binary_expression "ppVar18->mode & 6" (field_expression "ppVar18->mode" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c);\n    goto LAB_0002c8bc;\n  }" { (expression_statement "png_crc_finish(ppVar18,length);" (call_expression "png_crc_finish(ppVar18,length)" identifier (argument_list "(ppVar18,length)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c);" (call_expression "(**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c)" (parenthesized_expression "(**(code **)(finish + -0x7b54))" ( (pointer_expression "**(code **)(finish + -0x7b54)" * (pointer_expression "*(code **)(finish + -0x7b54)" * (cast_expression "(code **)(finish + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7b54)" ( (binary_expression "finish + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar18,*(int *)(finish + -0x7fd4) + 0x68c)" ( identifier , (binary_expression "*(int *)(finish + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (if_statement "if (length < (png_inforp)0xe) {\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }" if (parenthesized_expression "(length < (png_inforp)0xe)" ( (binary_expression "length < (png_inforp)0xe" identifier < (cast_expression "(png_inforp)0xe" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n    png_crc_finish(ppVar18,length);\n    (**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c);\n    goto LAB_0002c8bc;\n  }" { (expression_statement "png_crc_finish(ppVar18,length);" (call_expression "png_crc_finish(ppVar18,length)" identifier (argument_list "(ppVar18,length)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c);" (call_expression "(**(code **)(finish + -0x7b54))(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c)" (parenthesized_expression "(**(code **)(finish + -0x7b54))" ( (pointer_expression "**(code **)(finish + -0x7b54)" * (pointer_expression "*(code **)(finish + -0x7b54)" * (cast_expression "(code **)(finish + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7b54)" ( (binary_expression "finish + -0x7b54" identifier + number_literal) ))))) )) (argument_list "(ppVar18,*(int *)(finish + -0x7fd4) + 0x237c)" ( identifier , (binary_expression "*(int *)(finish + -0x7fd4) + 0x237c" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (expression_statement "uVar1 = (ppVar18->colorspace).flags;" (assignment_expression "uVar1 = (ppVar18->colorspace).flags" identifier = (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((short)uVar1 < 0) {\n    png_crc_finish(ppVar18,length);\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(ppVar18,length);\n    goto LAB_0002c8bc;\n  }" { (expression_statement "png_crc_finish(ppVar18,length);" (call_expression "png_crc_finish(ppVar18,length)" identifier (argument_list "(ppVar18,length)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (if_statement "if ((uVar1 & 4) == 0) {\n    ppVar26 = (png_inforp)0x51;\n    if (length < (png_inforp)0x51) {\n      ppVar26 = (png_inforp)length;\n    }\n    ppVar20 = apStack_5ac;\n    ppVar22 = ppVar26;\n    png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26);\n    appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26);\n    if (appStack_a0[0] < (png_inforp)0xb) {\n      FUN_0002c94c(ppVar18);\n      return;\n    }\n    pcVar12 = (char *)((int)&apStack_5ac[0].width + 1);\n    length = (png_uint_32)ppVar22;\n    if (apStack_5ac[0].width._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }\n  }\n  else {\n    ppVar26 = (png_inforp)(*(int *)(pcVar29 + 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    ppVar26 = (png_inforp)0x51;\n    if (length < (png_inforp)0x51) {\n      ppVar26 = (png_inforp)length;\n    }\n    ppVar20 = apStack_5ac;\n    ppVar22 = ppVar26;\n    png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26);\n    appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26);\n    if (appStack_a0[0] < (png_inforp)0xb) {\n      FUN_0002c94c(ppVar18);\n      return;\n    }\n    pcVar12 = (char *)((int)&apStack_5ac[0].width + 1);\n    length = (png_uint_32)ppVar22;\n    if (apStack_5ac[0].width._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }\n  }" { (expression_statement "ppVar26 = (png_inforp)0x51;" (assignment_expression "ppVar26 = (png_inforp)0x51" identifier = (cast_expression "(png_inforp)0x51" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) ;) (if_statement "if (length < (png_inforp)0x51) {\n      ppVar26 = (png_inforp)length;\n    }" if (parenthesized_expression "(length < (png_inforp)0x51)" ( (binary_expression "length < (png_inforp)0x51" identifier < (cast_expression "(png_inforp)0x51" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n      ppVar26 = (png_inforp)length;\n    }" { (expression_statement "ppVar26 = (png_inforp)length;" (assignment_expression "ppVar26 = (png_inforp)length" identifier = (cast_expression "(png_inforp)length" ( (type_descriptor "png_inforp" type_identifier) ) identifier)) ;) })) (expression_statement "ppVar20 = apStack_5ac;" (assignment_expression "ppVar20 = apStack_5ac" identifier = identifier) ;) (expression_statement "ppVar22 = ppVar26;" (assignment_expression "ppVar22 = ppVar26" identifier = identifier) ;) (expression_statement "png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26);" (call_expression "png_crc_read(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26)" identifier (argument_list "(ppVar18,(png_bytep)ppVar20,(png_uint_32)ppVar26)" ( identifier , (cast_expression "(png_bytep)ppVar20" ( (type_descriptor "png_bytep" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppVar26" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) ))) ;) (expression_statement "appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26);" (assignment_expression "appStack_a0[0] = (png_inforp)((int)appStack_a0[0] - (int)ppVar26)" (subscript_expression "appStack_a0[0]" identifier [ number_literal ]) = (call_expression "(png_inforp)((int)appStack_a0[0] - (int)ppVar26)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "((int)appStack_a0[0] - (int)ppVar26)" ( (binary_expression "(int)appStack_a0[0] - (int)ppVar26" (cast_expression "(int)appStack_a0[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "appStack_a0[0]" identifier [ number_literal ])) - (cast_expression "(int)ppVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (appStack_a0[0] < (png_inforp)0xb) {\n      FUN_0002c94c(ppVar18);\n      return;\n    }" if (parenthesized_expression "(appStack_a0[0] < (png_inforp)0xb)" ( (binary_expression "appStack_a0[0] < (png_inforp)0xb" (subscript_expression "appStack_a0[0]" identifier [ number_literal ]) < (cast_expression "(png_inforp)0xb" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n      FUN_0002c94c(ppVar18);\n      return;\n    }" { (expression_statement "FUN_0002c94c(ppVar18);" (call_expression "FUN_0002c94c(ppVar18)" identifier (argument_list "(ppVar18)" ( identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "pcVar12 = (char *)((int)&apStack_5ac[0].width + 1);" (assignment_expression "pcVar12 = (char *)((int)&apStack_5ac[0].width + 1)" identifier = (cast_expression "(char *)((int)&apStack_5ac[0].width + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&apStack_5ac[0].width + 1)" ( (binary_expression "(int)&apStack_5ac[0].width + 1" (cast_expression "(int)&apStack_5ac[0].width" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&apStack_5ac[0].width" & (field_expression "apStack_5ac[0].width" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "length = (png_uint_32)ppVar22;" (assignment_expression "length = (png_uint_32)ppVar22" identifier = (cast_expression "(png_uint_32)ppVar22" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (if_statement "if (apStack_5ac[0].width._0_1_ == '\0') {\nLAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);\n    }\n    else {\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }" if (parenthesized_expression "(apStack_5ac[0].width._0_1_ == '\0')" ( (binary_expression "apStack_5ac[0].width._0_1_ == '\0'" (field_expression "apStack_5ac[0].width._0_1_" (field_expression "apStack_5ac[0].width" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);\n    }" { (labeled_statement "LAB_0002c974:\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);" statement_identifier : (expression_statement "ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748);" (assignment_expression "ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x748)" identifier = (call_expression "(png_inforp)(*(int *)(finish + -0x7fd4) + 0x748)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(int *)(finish + -0x7fd4) + 0x748)" ( (binary_expression "*(int *)(finish + -0x7fd4) + 0x748" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;)) }) (else_clause "else {\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }" else (compound_statement "{\n      do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);\n      unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);\nLAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }\n      ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);\n    }" { (do_statement "do {\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      } while (ppVar26 != profile_00);" do (compound_statement "{\n        ppVar22 = profile_00;\n        unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);\n        profile_00 = ppVar22;\n        if (*pcVar12 == '\0') goto LAB_0002c86c;\n        profile_00 = (png_inforp)((int)&ppVar22->width + 1);\n        if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;\n        pcVar12 = pcVar12 + 1;\n      }" { (expression_statement "ppVar22 = profile_00;" (assignment_expression "ppVar22 = profile_00" identifier = identifier) ;) (expression_statement "unaff_s6 = (png_inforp)((int)&ppVar22->width + 1);" (assignment_expression "unaff_s6 = (png_inforp)((int)&ppVar22->width + 1)" identifier = (call_expression "(png_inforp)((int)&ppVar22->width + 1)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "((int)&ppVar22->width + 1)" ( (binary_expression "(int)&ppVar22->width + 1" (cast_expression "(int)&ppVar22->width" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar22->width" & (field_expression "ppVar22->width" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "profile_00 = ppVar22;" (assignment_expression "profile_00 = ppVar22" identifier = identifier) ;) (if_statement "if (*pcVar12 == '\0') goto LAB_0002c86c;" if (parenthesized_expression "(*pcVar12 == '\0')" ( (binary_expression "*pcVar12 == '\0'" (pointer_expression "*pcVar12" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002c86c;" goto statement_identifier ;)) (expression_statement "profile_00 = (png_inforp)((int)&ppVar22->width + 1);" (assignment_expression "profile_00 = (png_inforp)((int)&ppVar22->width + 1)" identifier = (call_expression "(png_inforp)((int)&ppVar22->width + 1)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "((int)&ppVar22->width + 1)" ( (binary_expression "(int)&ppVar22->width + 1" (cast_expression "(int)&ppVar22->width" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar22->width" & (field_expression "ppVar22->width" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (profile_00 == (png_inforp)0x50) goto LAB_0002c974;" if (parenthesized_expression "(profile_00 == (png_inforp)0x50)" ( (binary_expression "profile_00 == (png_inforp)0x50" identifier == (cast_expression "(png_inforp)0x50" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_0002c974;" goto statement_identifier ;)) (expression_statement "pcVar12 = pcVar12 + 1;" (assignment_expression "pcVar12 = pcVar12 + 1" identifier = (binary_expression "pcVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(ppVar26 != profile_00)" ( (binary_expression "ppVar26 != profile_00" identifier != identifier) )) ;) (expression_statement "unaff_s6 = (png_inforp)((int)&ppVar22->width + 2);" (assignment_expression "unaff_s6 = (png_inforp)((int)&ppVar22->width + 2)" identifier = (call_expression "(png_inforp)((int)&ppVar22->width + 2)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "((int)&ppVar22->width + 2)" ( (binary_expression "(int)&ppVar22->width + 2" (cast_expression "(int)&ppVar22->width" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ppVar22->width" & (field_expression "ppVar22->width" identifier -> field_identifier))) + number_literal) )))) ;) (labeled_statement "LAB_0002c86c:\n      if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }" statement_identifier : (if_statement "if ((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }" if (parenthesized_expression "((unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0'))" ( (binary_expression "(unaff_s6 < ppVar26) &&\n         (unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')" (parenthesized_expression "(unaff_s6 < ppVar26)" ( (binary_expression "unaff_s6 < ppVar26" identifier < identifier) )) && (parenthesized_expression "(unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')" ( (binary_expression "unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0'" (subscript_expression "unaff_s6->signature[(int)(apStack_5ac[0].signature + -0x40)]" (field_expression "unaff_s6->signature" identifier -> field_identifier) [ (cast_expression "(int)(apStack_5ac[0].signature + -0x40)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(apStack_5ac[0].signature + -0x40)" ( (binary_expression "apStack_5ac[0].signature + -0x40" (field_expression "apStack_5ac[0].signature" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) + number_literal) ))) ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar24 = png_inflate_claim(ppVar18,0x69434350);\n        if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }\n        profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;\n        (**(code **)(finish + -0x7c5c))(profile,0,0x84);\n        ppVar2 = &profile_00->width;\n        pVar21 = ppVar18->zowner;\n        pVar19 = ppVar18->chunk_name;\n        profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));\n        ppStack_5b0 = (png_int_32 *)0x84;\n        (ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);\n        (ppVar18->zstream).avail_in = (uInt)profile_00;\n        if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }\nLAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n        ppVar18->zowner = 0;\n        length = (png_uint_32)appStack_a0[0];\n        goto LAB_0002ca50;\n      }" { (expression_statement "iVar24 = png_inflate_claim(ppVar18,0x69434350);" (assignment_expression "iVar24 = png_inflate_claim(ppVar18,0x69434350)" identifier = (call_expression "png_inflate_claim(ppVar18,0x69434350)" identifier (argument_list "(ppVar18,0x69434350)" ( identifier , number_literal )))) ;) (if_statement "if (iVar24 != 0) {\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n          ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n          length = (png_uint_32)appStack_a0[0];\n          goto LAB_0002ca50;\n        }" { (expression_statement "ppVar26 = (png_inforp)(ppVar18->zstream).msg;" (assignment_expression "ppVar26 = (png_inforp)(ppVar18->zstream).msg" identifier = (field_expression "(png_inforp)(ppVar18->zstream).msg" (call_expression "(png_inforp)(ppVar18->zstream)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) ))) . field_identifier)) ;) (expression_statement "length = (png_uint_32)appStack_a0[0];" (assignment_expression "length = (png_uint_32)appStack_a0[0]" identifier = (cast_expression "(png_uint_32)appStack_a0[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_a0[0]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) })) (expression_statement "profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;" (assignment_expression "profile = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z" identifier = (pointer_expression "&apStack_5ac[0].colorspace.end_points_XYZ.red_Z" & (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ" (field_expression "apStack_5ac[0].colorspace" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier))) ;) (expression_statement "(**(code **)(finish + -0x7c5c))(profile,0,0x84);" (call_expression "(**(code **)(finish + -0x7c5c))(profile,0,0x84)" (parenthesized_expression "(**(code **)(finish + -0x7c5c))" ( (pointer_expression "**(code **)(finish + -0x7c5c)" * (pointer_expression "*(code **)(finish + -0x7c5c)" * (cast_expression "(code **)(finish + -0x7c5c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7c5c)" ( (binary_expression "finish + -0x7c5c" identifier + number_literal) ))))) )) (argument_list "(profile,0,0x84)" ( identifier , number_literal , number_literal ))) ;) (expression_statement "ppVar2 = &profile_00->width;" (assignment_expression "ppVar2 = &profile_00->width" identifier = (pointer_expression "&profile_00->width" & (field_expression "profile_00->width" identifier -> field_identifier))) ;) (expression_statement "pVar21 = ppVar18->zowner;" (assignment_expression "pVar21 = ppVar18->zowner" identifier = (field_expression "ppVar18->zowner" identifier -> field_identifier)) ;) (expression_statement "pVar19 = ppVar18->chunk_name;" (assignment_expression "pVar19 = ppVar18->chunk_name" identifier = (field_expression "ppVar18->chunk_name" identifier -> field_identifier)) ;) (expression_statement "profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00));" (assignment_expression "profile_00 = (png_inforp)((int)ppVar26 + (-2 - (int)profile_00))" identifier = (call_expression "(png_inforp)((int)ppVar26 + (-2 - (int)profile_00))" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "((int)ppVar26 + (-2 - (int)profile_00))" ( (binary_expression "(int)ppVar26 + (-2 - (int)profile_00)" (cast_expression "(int)ppVar26" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-2 - (int)profile_00)" ( (binary_expression "-2 - (int)profile_00" number_literal - (cast_expression "(int)profile_00" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "ppStack_5b0 = (png_int_32 *)0x84;" (assignment_expression "ppStack_5b0 = (png_int_32 *)0x84" identifier = (cast_expression "(png_int_32 *)0x84" ( (type_descriptor "png_int_32 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);" (assignment_expression "(ppVar18->zstream).next_in =\n             (png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20)" (field_expression "(ppVar18->zstream).next_in" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(png_bytep)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20)" (call_expression "(png_bytep)((int)ppVar2 + 2)" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "((int)ppVar2 + 2)" ( (binary_expression "(int)ppVar2 + 2" (cast_expression "(int)ppVar2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) + (cast_expression "(int)(ppVar20->signature + -0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppVar20->signature + -0x20)" ( (binary_expression "ppVar20->signature + -0x20" (field_expression "ppVar20->signature" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "(ppVar18->zstream).avail_in = (uInt)profile_00;" (assignment_expression "(ppVar18->zstream).avail_in = (uInt)profile_00" (field_expression "(ppVar18->zstream).avail_in" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(uInt)profile_00" ( (type_descriptor "uInt" type_identifier) ) identifier)) ;) (if_statement "if (pVar21 == pVar19) {\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }\n        else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }" if (parenthesized_expression "(pVar21 == pVar19)" ( (binary_expression "pVar21 == pVar19" identifier == identifier) )) (compound_statement "{\n          iVar24 = *(int *)(finish + -0x7e0c);\n          (ppVar18->zstream).next_out = (Bytef *)profile;\n          read_buffer = &apStack_5ac[0].hist;\n          (ppVar18->zstream).avail_out = 0;\n          png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);\n          if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }\n        }" { (expression_statement "iVar24 = *(int *)(finish + -0x7e0c);" (assignment_expression "iVar24 = *(int *)(finish + -0x7e0c)" identifier = (pointer_expression "*(int *)(finish + -0x7e0c)" * (cast_expression "(int *)(finish + -0x7e0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7e0c)" ( (binary_expression "finish + -0x7e0c" identifier + number_literal) ))))) ;) (expression_statement "(ppVar18->zstream).next_out = (Bytef *)profile;" (assignment_expression "(ppVar18->zstream).next_out = (Bytef *)profile" (field_expression "(ppVar18->zstream).next_out" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Bytef *)profile" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "read_buffer = &apStack_5ac[0].hist;" (assignment_expression "read_buffer = &apStack_5ac[0].hist" identifier = (pointer_expression "&apStack_5ac[0].hist" & (field_expression "apStack_5ac[0].hist" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "(ppVar18->zstream).avail_out = 0;" (assignment_expression "(ppVar18->zstream).avail_out = 0" (field_expression "(ppVar18->zstream).avail_out" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish);" (call_expression "png_inflate_read(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish)" identifier (argument_list "(ppVar18,(png_bytep)read_buffer,(uInt)appStack_a0,\n                           (png_uint_32p)&ppStack_5b0,(png_bytep)0x0,in_stack_fffffa24,(int)finish)" ( identifier , (cast_expression "(png_bytep)read_buffer" ( (type_descriptor "png_bytep" type_identifier) ) identifier) , (cast_expression "(uInt)appStack_a0" ( (type_descriptor "uInt" type_identifier) ) identifier) , (binary_expression "(png_uint_32p)&ppStack_5b0" (parenthesized_expression "(png_uint_32p)" ( identifier )) & identifier) , (cast_expression "(png_bytep)0x0" ( (type_descriptor "png_bytep" type_identifier) ) number_literal) , identifier , (cast_expression "(int)finish" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (ppStack_5b0 == (png_int_32 *)0x0) {\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }" if (parenthesized_expression "(ppStack_5b0 == (png_int_32 *)0x0)" ( (binary_expression "ppStack_5b0 == (png_int_32 *)0x0" identifier == (cast_expression "(png_int_32 *)0x0" ( (type_descriptor "png_int_32 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            ppStack_5c4 = &ppVar18->colorspace;\n            ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);\n            length = (png_uint_32)ppVar20;\n            iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );\n            if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }\n            length = (png_uint_32)&DAT_00000002;\n            profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);\n            if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }\n            goto LAB_0002c900;\n          }" { (expression_statement "ppStack_5c4 = &ppVar18->colorspace;" (assignment_expression "ppStack_5c4 = &ppVar18->colorspace" identifier = (pointer_expression "&ppVar18->colorspace" & (field_expression "ppVar18->colorspace" identifier -> field_identifier))) ;) (expression_statement "ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);" (assignment_expression "ppStack_5d0 = (png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100)" identifier = (call_expression "(png_inforp)\n                          ((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "((uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100)" ( (binary_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +\n                          (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100" (binary_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +\n                           (uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z" (binary_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +\n                           (uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000" (binary_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000" (cast_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ" (field_expression "apStack_5ac[0].colorspace" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) * number_literal) + (binary_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000" (cast_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ" (field_expression "apStack_5ac[0].colorspace" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) * number_literal)) + (cast_expression "(uint)(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)apStack_5ac[0].colorspace.end_points_XYZ.red_Z" ( (type_descriptor "byte" type_identifier) ) (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ" (field_expression "apStack_5ac[0].colorspace" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier)))) + (binary_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100" (cast_expression "(uint)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ.red_Z" (field_expression "apStack_5ac[0].colorspace.end_points_XYZ" (field_expression "apStack_5ac[0].colorspace" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier) . field_identifier) . field_identifier)) * number_literal)) )))) ;) (expression_statement "length = (png_uint_32)ppVar20;" (assignment_expression "length = (png_uint_32)ppVar20" identifier = (cast_expression "(png_uint_32)ppVar20" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (expression_statement "iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              );" (assignment_expression "iVar4 = png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              )" identifier = (call_expression "png_icc_check_length\n                              (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              )" identifier (argument_list "(ppVar18,ppStack_5c4,(png_const_charp)ppVar20,(png_uint_32)ppStack_5d0\n                              )" ( identifier , identifier , (cast_expression "(png_const_charp)ppVar20" ( (type_descriptor "png_const_charp" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppStack_5d0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) )))) ;) (if_statement "if ((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)) {\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }" if (parenthesized_expression "((iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0))" ( (binary_expression "(iVar4 == 0) ||\n               (length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0)" ( (comma_expression "length = (png_uint_32)ppVar20,\n               iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0" (assignment_expression "length = (png_uint_32)ppVar20" identifier = (cast_expression "(png_uint_32)ppVar20" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) , (comma_expression "iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type), iVar4 == 0" (assignment_expression "iVar4 = png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type)" identifier = (call_expression "png_icc_check_header\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type)" identifier (argument_list "(ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile,\n                                  (uint)ppVar18->color_type)" ( identifier , identifier , (cast_expression "(png_const_charp)ppVar20" ( (type_descriptor "png_const_charp" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppStack_5d0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) , (cast_expression "(png_const_bytep)profile" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , (cast_expression "(uint)ppVar18->color_type" ( (type_descriptor "uint" type_identifier) ) (field_expression "ppVar18->color_type" identifier -> field_identifier)) )))) , (binary_expression "iVar4 == 0" identifier == number_literal))) ))) )) (compound_statement "{\nLAB_0002caf4:\n              ppVar18->zowner = 0;\n              png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n              png_colorspace_sync(ppVar18,info_ptr_00);\n              unaff_s2 = ppVar20;\n              goto LAB_0002c8bc;\n            }" { (labeled_statement "LAB_0002caf4:\n              ppVar18->zowner = 0;" statement_identifier : (expression_statement "ppVar18->zowner = 0;" (assignment_expression "ppVar18->zowner = 0" (field_expression "ppVar18->zowner" identifier -> field_identifier) = number_literal) ;)) (expression_statement "png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);" (call_expression "png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0])" identifier (argument_list "(ppVar18,(png_uint_32)appStack_a0[0])" ( identifier , (cast_expression "(png_uint_32)appStack_a0[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_a0[0]" identifier [ number_literal ])) ))) ;) (expression_statement "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;" (assignment_expression "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar18,info_ptr_00);" (call_expression "png_colorspace_sync(ppVar18,info_ptr_00)" identifier (argument_list "(ppVar18,info_ptr_00)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = ppVar20;" (assignment_expression "unaff_s2 = ppVar20" identifier = identifier) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) (expression_statement "length = (png_uint_32)&DAT_00000002;" (assignment_expression "length = (png_uint_32)&DAT_00000002" identifier = (binary_expression "(png_uint_32)&DAT_00000002" (parenthesized_expression "(png_uint_32)" ( identifier )) & identifier)) ;) (expression_statement "profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2);" (assignment_expression "profile_00 = (png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2)" identifier = (cast_expression "(png_inforp)png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2)" ( (type_descriptor "png_inforp" type_identifier) ) (call_expression "png_read_buffer(ppVar18,(png_alloc_size_t)ppStack_5d0,2)" identifier (argument_list "(ppVar18,(png_alloc_size_t)ppStack_5d0,2)" ( identifier , (cast_expression "(png_alloc_size_t)ppStack_5d0" ( (type_descriptor "png_alloc_size_t" type_identifier) ) identifier) , number_literal ))))) ;) (if_statement "if (profile_00 == (png_inforp)0x0) {\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }\n            else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }" if (parenthesized_expression "(profile_00 == (png_inforp)0x0)" ( (binary_expression "profile_00 == (png_inforp)0x0" identifier == (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + -0x184);\n            }" { (expression_statement "iVar24 = *(int *)(finish + -0x7fd4);" (assignment_expression "iVar24 = *(int *)(finish + -0x7fd4)" identifier = (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "ppVar18->zowner = 0;" (assignment_expression "ppVar18->zowner = 0" (field_expression "ppVar18->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar26 = (png_inforp)(iVar24 + -0x184);" (assignment_expression "ppVar26 = (png_inforp)(iVar24 + -0x184)" identifier = (call_expression "(png_inforp)(iVar24 + -0x184)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(iVar24 + -0x184)" ( (binary_expression "iVar24 + -0x184" identifier + number_literal) )))) ;) }) (else_clause "else {\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }" else (compound_statement "{\n              ppVar26 = profile_00;\n              do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);\n              *(png_colorp *)ppVar26 = (png_colorp)*ppVar27;\n              iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;\n              ppVar14 = (png_int_32 *)(iVar4 * 0xc);\n              ppStack_5b0 = ppVar14;\n              if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }\n              if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;\n              length = (png_uint_32)ppVar20;\n              iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);\n              if (iVar13 == 0) goto LAB_0002caf4;\n              ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);\n              if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }\n              (ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));\n              (ppVar18->zstream).avail_out = 0;\n              (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);\n              length = (png_uint_32)appStack_a0[0];\n              pcVar31 = finish;\n              if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }\n              ppVar14 = ppStack_5b0;\n              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;\n              iVar24 = *(int *)(finish + -0x7fd4);\n              ppVar18->zowner = 0;\n              ppVar26 = (png_inforp)(iVar24 + 0x674);\n            }" { (expression_statement "ppVar26 = profile_00;" (assignment_expression "ppVar26 = profile_00" identifier = identifier) ;) (do_statement "do {\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              } while ((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf);" do (compound_statement "{\n                ppVar27 = profile + 4;\n                pVar23 = profile[1];\n                pVar21 = profile[2];\n                pVar19 = profile[3];\n                ppVar26->width = *profile;\n                ppVar26->height = pVar23;\n                ppVar26->valid = pVar21;\n                ppVar26->rowbytes = pVar19;\n                ppVar26 = (png_inforp)&ppVar26->palette;\n                profile = ppVar27;\n              }" { (expression_statement "ppVar27 = profile + 4;" (assignment_expression "ppVar27 = profile + 4" identifier = (binary_expression "profile + 4" identifier + number_literal)) ;) (expression_statement "pVar23 = profile[1];" (assignment_expression "pVar23 = profile[1]" identifier = (subscript_expression "profile[1]" identifier [ number_literal ])) ;) (expression_statement "pVar21 = profile[2];" (assignment_expression "pVar21 = profile[2]" identifier = (subscript_expression "profile[2]" identifier [ number_literal ])) ;) (expression_statement "pVar19 = profile[3];" (assignment_expression "pVar19 = profile[3]" identifier = (subscript_expression "profile[3]" identifier [ number_literal ])) ;) (expression_statement "ppVar26->width = *profile;" (assignment_expression "ppVar26->width = *profile" (field_expression "ppVar26->width" identifier -> field_identifier) = (pointer_expression "*profile" * identifier)) ;) (expression_statement "ppVar26->height = pVar23;" (assignment_expression "ppVar26->height = pVar23" (field_expression "ppVar26->height" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar26->valid = pVar21;" (assignment_expression "ppVar26->valid = pVar21" (field_expression "ppVar26->valid" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar26->rowbytes = pVar19;" (assignment_expression "ppVar26->rowbytes = pVar19" (field_expression "ppVar26->rowbytes" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar26 = (png_inforp)&ppVar26->palette;" (assignment_expression "ppVar26 = (png_inforp)&ppVar26->palette" identifier = (binary_expression "(png_inforp)&ppVar26->palette" (parenthesized_expression "(png_inforp)" ( identifier )) & (field_expression "ppVar26->palette" identifier -> field_identifier))) ;) (expression_statement "profile = ppVar27;" (assignment_expression "profile = ppVar27" identifier = identifier) ;) }) while (parenthesized_expression "((png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf)" ( (binary_expression "(png_bytep *)ppVar27 != &apStack_5ac[0].eXIf_buf" (cast_expression "(png_bytep *)ppVar27" ( (type_descriptor "png_bytep *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != (pointer_expression "&apStack_5ac[0].eXIf_buf" & (field_expression "apStack_5ac[0].eXIf_buf" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier))) )) ;) (expression_statement "*(png_colorp *)ppVar26 = (png_colorp)*ppVar27;" (assignment_expression "*(png_colorp *)ppVar26 = (png_colorp)*ppVar27" (pointer_expression "*(png_colorp *)ppVar26" * (cast_expression "(png_colorp *)ppVar26" ( (type_descriptor "png_colorp *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "(png_colorp)*ppVar27" (parenthesized_expression "(png_colorp)" ( identifier )) * identifier)) ;) (expression_statement "iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;" (assignment_expression "iVar4 = (uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100" identifier = (binary_expression "(uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf +\n                      (uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100" (binary_expression "(uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +\n                      (uint)(byte)apStack_5ac[0].eXIf_buf" (binary_expression "(uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +\n                      (uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000" (binary_expression "(uint)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000" (cast_expression "(uint)apStack_5ac[0].eXIf_buf._0_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "apStack_5ac[0].eXIf_buf._0_1_" (field_expression "apStack_5ac[0].eXIf_buf" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier)) * number_literal) + (binary_expression "(uint)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000" (cast_expression "(uint)apStack_5ac[0].eXIf_buf._1_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "apStack_5ac[0].eXIf_buf._1_1_" (field_expression "apStack_5ac[0].eXIf_buf" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier)) * number_literal)) + (cast_expression "(uint)(byte)apStack_5ac[0].eXIf_buf" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)apStack_5ac[0].eXIf_buf" ( (type_descriptor "byte" type_identifier) ) (field_expression "apStack_5ac[0].eXIf_buf" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier)))) + (binary_expression "(uint)apStack_5ac[0].eXIf_buf._2_1_ * 0x100" (cast_expression "(uint)apStack_5ac[0].eXIf_buf._2_1_" ( (type_descriptor "uint" type_identifier) ) (field_expression "apStack_5ac[0].eXIf_buf._2_1_" (field_expression "apStack_5ac[0].eXIf_buf" (subscript_expression "apStack_5ac[0]" identifier [ number_literal ]) . field_identifier) . field_identifier)) * number_literal))) ;) (expression_statement "ppVar14 = (png_int_32 *)(iVar4 * 0xc);" (assignment_expression "ppVar14 = (png_int_32 *)(iVar4 * 0xc)" identifier = (cast_expression "(png_int_32 *)(iVar4 * 0xc)" ( (type_descriptor "png_int_32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 * 0xc)" ( (binary_expression "iVar4 * 0xc" identifier * number_literal) )))) ;) (expression_statement "ppStack_5b0 = ppVar14;" (assignment_expression "ppStack_5b0 = ppVar14" identifier = identifier) ;) (if_statement "if (ppVar18->zowner == ppVar18->chunk_name) {\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }\n              else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }" if (parenthesized_expression "(ppVar18->zowner == ppVar18->chunk_name)" ( (binary_expression "ppVar18->zowner == ppVar18->chunk_name" (field_expression "ppVar18->zowner" identifier -> field_identifier) == (field_expression "ppVar18->chunk_name" identifier -> field_identifier)) )) (compound_statement "{\n                (ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;\n                (ppVar18->zstream).avail_out = 0;\n                (*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);\n              }" { (expression_statement "(ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text;" (assignment_expression "(ppVar18->zstream).next_out = (Bytef *)&profile_00->max_text" (field_expression "(ppVar18->zstream).next_out" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(Bytef *)&profile_00->max_text" ( (type_descriptor "Bytef *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&profile_00->max_text" & (field_expression "profile_00->max_text" identifier -> field_identifier)))) ;) (expression_statement "(ppVar18->zstream).avail_out = 0;" (assignment_expression "(ppVar18->zstream).avail_out = 0" (field_expression "(ppVar18->zstream).avail_out" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0);" (call_expression "(*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0)" (parenthesized_expression "(*(code *)(iVar24 + -0x47c4))" ( (pointer_expression "*(code *)(iVar24 + -0x47c4)" * (cast_expression "(code *)(iVar24 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x47c4)" ( (binary_expression "iVar24 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,0)" ( identifier , identifier , identifier , (pointer_expression "&ppStack_5b0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }" else (compound_statement "{\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n              }" { (expression_statement "(ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);" (assignment_expression "(ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660)" (field_expression "(ppVar18->zstream).msg" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(*(int *)(finish + -0x7fd4) + 0x660)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(finish + -0x7fd4) + 0x660)" ( (binary_expression "*(int *)(finish + -0x7fd4) + 0x660" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }))) (if_statement "if (ppStack_5b0 != (png_int_32 *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(ppStack_5b0 != (png_int_32 *)0x0)" ( (binary_expression "ppStack_5b0 != (png_int_32 *)0x0" identifier != (cast_expression "(png_int_32 *)0x0" ( (type_descriptor "png_int_32 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "length = (png_uint_32)ppVar20;" (assignment_expression "length = (png_uint_32)ppVar20" identifier = (cast_expression "(png_uint_32)ppVar20" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (expression_statement "iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00);" (assignment_expression "iVar13 = png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00)" identifier = (call_expression "png_icc_check_tag_table\n                                 (ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00)" identifier (argument_list "(ppVar18,ppStack_5c4,(png_const_charp)ppVar20,\n                                  (png_uint_32)ppStack_5d0,(png_const_bytep)profile_00)" ( identifier , identifier , (cast_expression "(png_const_charp)ppVar20" ( (type_descriptor "png_const_charp" type_identifier) ) identifier) , (cast_expression "(png_uint_32)ppStack_5d0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier) , (cast_expression "(png_const_bytep)profile_00" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) )))) ;) (if_statement "if (iVar13 == 0) goto LAB_0002caf4;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002caf4;" goto statement_identifier ;)) (expression_statement "ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84);" (assignment_expression "ppStack_5b0 = (png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84)" identifier = (cast_expression "(png_int_32 *)((int)ppStack_5d0 + iVar4 * -0xc + -0x84)" ( (type_descriptor "png_int_32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppStack_5d0 + iVar4 * -0xc + -0x84)" ( (binary_expression "(int)ppStack_5d0 + iVar4 * -0xc + -0x84" (binary_expression "(int)ppStack_5d0 + iVar4 * -0xc" (cast_expression "(int)ppStack_5d0" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "iVar4 * -0xc" identifier * number_literal)) + number_literal) )))) ;) (if_statement "if (ppVar18->zowner != ppVar18->chunk_name) {\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }" if (parenthesized_expression "(ppVar18->zowner != ppVar18->chunk_name)" ( (binary_expression "ppVar18->zowner != ppVar18->chunk_name" (field_expression "ppVar18->zowner" identifier -> field_identifier) != (field_expression "ppVar18->chunk_name" identifier -> field_identifier)) )) (compound_statement "{\n                (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n                FUN_0002ccd8();\n                return;\n              }" { (expression_statement "(ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);" (assignment_expression "(ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660)" (field_expression "(ppVar18->zstream).msg" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(*(int *)(finish + -0x7fd4) + 0x660)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(finish + -0x7fd4) + 0x660)" ( (binary_expression "*(int *)(finish + -0x7fd4) + 0x660" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_0002ccd8();" (call_expression "FUN_0002ccd8()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "(ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20));" (assignment_expression "(ppVar18->zstream).next_out =\n                   (png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20))" (field_expression "(ppVar18->zstream).next_out" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (call_expression "(png_bytep)((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20))" (parenthesized_expression "(png_bytep)" ( identifier )) (argument_list "((int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20))" ( (binary_expression "(int)(ppVar14 + 0x21) + (int)(profile_00->signature + -0x20)" (cast_expression "(int)(ppVar14 + 0x21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppVar14 + 0x21)" ( (binary_expression "ppVar14 + 0x21" identifier + number_literal) ))) + (cast_expression "(int)(profile_00->signature + -0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(profile_00->signature + -0x20)" ( (binary_expression "profile_00->signature + -0x20" (field_expression "profile_00->signature" identifier -> field_identifier) + number_literal) )))) )))) ;) (expression_statement "(ppVar18->zstream).avail_out = 0;" (assignment_expression "(ppVar18->zstream).avail_out = 0" (field_expression "(ppVar18->zstream).avail_out" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "(*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1);" (call_expression "(*(code *)(iVar24 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1)" (parenthesized_expression "(*(code *)(iVar24 + -0x47c4))" ( (pointer_expression "*(code *)(iVar24 + -0x47c4)" * (cast_expression "(code *)(iVar24 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + -0x47c4)" ( (binary_expression "iVar24 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(ppVar18,read_buffer,appStack_a0,&ppStack_5b0,1)" ( identifier , identifier , identifier , (pointer_expression "&ppStack_5b0" & identifier) , number_literal ))) ;) (expression_statement "length = (png_uint_32)appStack_a0[0];" (assignment_expression "length = (png_uint_32)appStack_a0[0]" identifier = (cast_expression "(png_uint_32)appStack_a0[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_a0[0]" identifier [ number_literal ]))) ;) (expression_statement "pcVar31 = finish;" (assignment_expression "pcVar31 = finish" identifier = identifier) ;) (if_statement "if (appStack_a0[0] == (png_inforp)0x0) {\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }" if (parenthesized_expression "(appStack_a0[0] == (png_inforp)0x0)" ( (binary_expression "appStack_a0[0] == (png_inforp)0x0" (subscript_expression "appStack_a0[0]" identifier [ number_literal ]) == (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n                if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;\n                goto LAB_0002ce38;\n              }" { (if_statement "if (ppStack_5b0 == (png_int_32 *)0x0) goto LAB_0002cd68;" if (parenthesized_expression "(ppStack_5b0 == (png_int_32 *)0x0)" ( (binary_expression "ppStack_5b0 == (png_int_32 *)0x0" identifier == (cast_expression "(png_int_32 *)0x0" ( (type_descriptor "png_int_32 *" 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 "ppVar14 = ppStack_5b0;" (assignment_expression "ppVar14 = ppStack_5b0" identifier = identifier) ;) (if_statement "if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;" if (parenthesized_expression "((int)(ppVar18->flags << 0xb) < 0)" ( (binary_expression "(int)(ppVar18->flags << 0xb) < 0" (cast_expression "(int)(ppVar18->flags << 0xb)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ppVar18->flags << 0xb)" ( (binary_expression "ppVar18->flags << 0xb" (field_expression "ppVar18->flags" identifier -> field_identifier) << number_literal) ))) < number_literal) )) (goto_statement "goto LAB_0002cd44;" goto statement_identifier ;)) (expression_statement "iVar24 = *(int *)(finish + -0x7fd4);" (assignment_expression "iVar24 = *(int *)(finish + -0x7fd4)" identifier = (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) ))))) ;) (expression_statement "ppVar18->zowner = 0;" (assignment_expression "ppVar18->zowner = 0" (field_expression "ppVar18->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "ppVar26 = (png_inforp)(iVar24 + 0x674);" (assignment_expression "ppVar26 = (png_inforp)(iVar24 + 0x674)" identifier = (call_expression "(png_inforp)(iVar24 + 0x674)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(iVar24 + 0x674)" ( (binary_expression "iVar24 + 0x674" identifier + number_literal) )))) ;) }))) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) }) (else_clause "else {\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }" else (compound_statement "{\n          (ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);\n        }" { (expression_statement "(ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660);" (assignment_expression "(ppVar18->zstream).msg = (char *)(*(int *)(finish + -0x7fd4) + 0x660)" (field_expression "(ppVar18->zstream).msg" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(char *)(*(int *)(finish + -0x7fd4) + 0x660)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(finish + -0x7fd4) + 0x660)" ( (binary_expression "*(int *)(finish + -0x7fd4) + 0x660" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }))) (labeled_statement "LAB_0002ca44:\n        ppVar26 = (png_inforp)(ppVar18->zstream).msg;" statement_identifier : (expression_statement "ppVar26 = (png_inforp)(ppVar18->zstream).msg;" (assignment_expression "ppVar26 = (png_inforp)(ppVar18->zstream).msg" identifier = (field_expression "(png_inforp)(ppVar18->zstream).msg" (call_expression "(png_inforp)(ppVar18->zstream)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) ))) . field_identifier)) ;)) (expression_statement "ppVar18->zowner = 0;" (assignment_expression "ppVar18->zowner = 0" (field_expression "ppVar18->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "length = (png_uint_32)appStack_a0[0];" (assignment_expression "length = (png_uint_32)appStack_a0[0]" identifier = (cast_expression "(png_uint_32)appStack_a0[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_a0[0]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) }))) (expression_statement "ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730);" (assignment_expression "ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + 0x730)" identifier = (call_expression "(png_inforp)(*(int *)(finish + -0x7fd4) + 0x730)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(int *)(finish + -0x7fd4) + 0x730)" ( (binary_expression "*(int *)(finish + -0x7fd4) + 0x730" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) }))) }) (else_clause "else {\n    ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\n  }" else (compound_statement "{\n    ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c);\n  }" { (expression_statement "ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c);" (assignment_expression "ppVar26 = (png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" identifier = (call_expression "(png_inforp)(*(int *)(pcVar29 + 0x268ac) + 0x71c)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(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  png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);" statement_identifier : (expression_statement "png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);" (call_expression "png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0])" identifier (argument_list "(ppVar18,(png_uint_32)appStack_a0[0])" ( identifier , (cast_expression "(png_uint_32)appStack_a0[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_a0[0]" identifier [ number_literal ])) ))) ;)) (expression_statement "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;" (assignment_expression "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar18,info_ptr_00);" (call_expression "png_colorspace_sync(ppVar18,info_ptr_00)" identifier (argument_list "(ppVar18,info_ptr_00)" ( identifier , identifier ))) ;) (labeled_statement "LAB_0002c934:\n  pcVar31 = *(code **)(finish + -0x7b54);" statement_identifier : (expression_statement "pcVar31 = *(code **)(finish + -0x7b54);" (assignment_expression "pcVar31 = *(code **)(finish + -0x7b54)" identifier = (pointer_expression "*(code **)(finish + -0x7b54)" * (cast_expression "(code **)(finish + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7b54)" ( (binary_expression "finish + -0x7b54" identifier + number_literal) ))))) ;)) (do_statement "do {\n    (*pcVar31)(ppVar18,ppVar26);\n    unaff_s2 = ppVar26;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    } while (ppVar26 == (png_inforp)0x0);\n    pcVar31 = *(code **)(finish + -0x7b54);\n  } while( true );" do (compound_statement "{\n    (*pcVar31)(ppVar18,ppVar26);\n    unaff_s2 = ppVar26;\nLAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    } while (ppVar26 == (png_inforp)0x0);\n    pcVar31 = *(code **)(finish + -0x7b54);\n  }" { (expression_statement "(*pcVar31)(ppVar18,ppVar26);" (call_expression "(*pcVar31)(ppVar18,ppVar26)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(ppVar18,ppVar26)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = ppVar26;" (assignment_expression "unaff_s2 = ppVar26" identifier = identifier) ;) (labeled_statement "LAB_0002c8bc:\n    do {\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    } while (ppVar26 == (png_inforp)0x0);" statement_identifier : (do_statement "do {\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    } while (ppVar26 == (png_inforp)0x0);" do (compound_statement "{\n      while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }\nLAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;\n      ppVar18->zowner = 0;\n      finish = pcVar31;\nLAB_0002ca50:\n      png_crc_finish(ppVar18,length);\n      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n      png_colorspace_sync(ppVar18,info_ptr_00);\n      unaff_s2 = ppVar26;\n    }" { (while_statement "while( true ) {\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (iStack_d4 == *piVar25) {\n          return;\n        }\n        pcVar31 = finish;\n        (**(code **)(finish + -0x7b6c))();\n        ppVar26 = info_ptr_00;\n        ppVar20 = unaff_s2;\n        unaff_s8 = ppVar18;\nLAB_0002cd34:\n        ppVar18 = unaff_s8;\n        info_ptr_00 = ppVar26;\n        ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();\nLAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;\n        (**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);\n        finish = pcVar31;\nLAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);\n        length = (png_uint_32)profile_00;\n        png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);\n        if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }\n        ppVar18->zowner = 0;\n        unaff_s2 = ppVar20;\n      }" { (if_statement "if (iStack_d4 == *piVar25) {\n          return;\n        }" if (parenthesized_expression "(iStack_d4 == *piVar25)" ( (binary_expression "iStack_d4 == *piVar25" identifier == (pointer_expression "*piVar25" * identifier)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "pcVar31 = finish;" (assignment_expression "pcVar31 = finish" identifier = identifier) ;) (expression_statement "(**(code **)(finish + -0x7b6c))();" (call_expression "(**(code **)(finish + -0x7b6c))()" (parenthesized_expression "(**(code **)(finish + -0x7b6c))" ( (pointer_expression "**(code **)(finish + -0x7b6c)" * (pointer_expression "*(code **)(finish + -0x7b6c)" * (cast_expression "(code **)(finish + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7b6c)" ( (binary_expression "finish + -0x7b6c" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "ppVar26 = info_ptr_00;" (assignment_expression "ppVar26 = info_ptr_00" identifier = identifier) ;) (expression_statement "ppVar20 = unaff_s2;" (assignment_expression "ppVar20 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s8 = ppVar18;" (assignment_expression "unaff_s8 = ppVar18" identifier = identifier) ;) (labeled_statement "LAB_0002cd34:\n        ppVar18 = unaff_s8;" statement_identifier : (expression_statement "ppVar18 = unaff_s8;" (assignment_expression "ppVar18 = unaff_s8" identifier = identifier) ;)) (expression_statement "info_ptr_00 = ppVar26;" (assignment_expression "info_ptr_00 = ppVar26" identifier = identifier) ;) (expression_statement "ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))();" (assignment_expression "ppVar14 = (png_int_32 *)(**(code **)(finish + -0x7ad4))()" identifier = (cast_expression "(png_int_32 *)(**(code **)(finish + -0x7ad4))()" ( (type_descriptor "png_int_32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(finish + -0x7ad4))()" (parenthesized_expression "(**(code **)(finish + -0x7ad4))" ( (pointer_expression "**(code **)(finish + -0x7ad4)" * (pointer_expression "*(code **)(finish + -0x7ad4)" * (cast_expression "(code **)(finish + -0x7ad4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7ad4)" ( (binary_expression "finish + -0x7ad4" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0002cd44:\n        if (ppVar14 != (png_int_32 *)0x0) break;" statement_identifier : (if_statement "if (ppVar14 != (png_int_32 *)0x0) break;" if (parenthesized_expression "(ppVar14 != (png_int_32 *)0x0)" ( (binary_expression "ppVar14 != (png_int_32 *)0x0" identifier != (cast_expression "(png_int_32 *)0x0" ( (type_descriptor "png_int_32 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;))) (expression_statement "(**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674);" (call_expression "(**(code **)(finish + -0x7c88))(ppVar18,*(int *)(finish + -0x7fd4) + 0x674)" (parenthesized_expression "(**(code **)(finish + -0x7c88))" ( (pointer_expression "**(code **)(finish + -0x7c88)" * (pointer_expression "*(code **)(finish + -0x7c88)" * (cast_expression "(code **)(finish + -0x7c88)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7c88)" ( (binary_expression "finish + -0x7c88" identifier + number_literal) ))))) )) (argument_list "(ppVar18,*(int *)(finish + -0x7fd4) + 0x674)" ( identifier , (binary_expression "*(int *)(finish + -0x7fd4) + 0x674" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "finish = pcVar31;" (assignment_expression "finish = pcVar31" identifier = identifier) ;) (labeled_statement "LAB_0002cd68:\n        png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);" statement_identifier : (expression_statement "png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0]);" (call_expression "png_crc_finish(ppVar18,(png_uint_32)appStack_a0[0])" identifier (argument_list "(ppVar18,(png_uint_32)appStack_a0[0])" ( identifier , (cast_expression "(png_uint_32)appStack_a0[0]" ( (type_descriptor "png_uint_32" type_identifier) ) (subscript_expression "appStack_a0[0]" identifier [ number_literal ])) ))) ;)) (expression_statement "length = (png_uint_32)profile_00;" (assignment_expression "length = (png_uint_32)profile_00" identifier = (cast_expression "(png_uint_32)profile_00" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (expression_statement "png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler);" (call_expression "png_icc_set_sRGB(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler)" identifier (argument_list "(ppVar18,ppStack_5c4,(png_const_bytep)profile_00,(ppVar18->zstream).adler)" ( identifier , identifier , (cast_expression "(png_const_bytep)profile_00" ( (type_descriptor "png_const_bytep" type_identifier) ) identifier) , (field_expression "(ppVar18->zstream).adler" (parenthesized_expression "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) )) . field_identifier) ))) ;) (if_statement "if (info_ptr_00 != (png_inforp)0x0) {\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }" if (parenthesized_expression "(info_ptr_00 != (png_inforp)0x0)" ( (binary_expression "info_ptr_00 != (png_inforp)0x0" identifier != (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) (compound_statement "{\n          length = 0x10;\n          (**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);\n          pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);\n          info_ptr_00->iccp_name = pcVar15;\n          if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }\n          (**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);\n          uVar17 = info_ptr_00->free_me;\n          uVar16 = info_ptr_00->valid;\n          info_ptr_00->iccp_profile = (png_bytep)profile_00;\n          info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;\n          ppVar18->read_buffer = (png_bytep)0x0;\n          info_ptr_00->free_me = uVar17 | 0x10;\n          info_ptr_00->valid = uVar16 | 0x1000;\n          length = (png_uint_32)ppStack_5d0;\n          png_colorspace_sync(ppVar18,info_ptr_00);\n        }" { (expression_statement "length = 0x10;" (assignment_expression "length = 0x10" identifier = number_literal) ;) (expression_statement "(**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0);" (call_expression "(**(code **)(finish + -0x7cb0))(ppVar18,info_ptr_00,0x10,0)" (parenthesized_expression "(**(code **)(finish + -0x7cb0))" ( (pointer_expression "**(code **)(finish + -0x7cb0)" * (pointer_expression "*(code **)(finish + -0x7cb0)" * (cast_expression "(code **)(finish + -0x7cb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7cb0)" ( (binary_expression "finish + -0x7cb0" identifier + number_literal) ))))) )) (argument_list "(ppVar18,info_ptr_00,0x10,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6);" (assignment_expression "pcVar15 = (png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6)" identifier = (cast_expression "(png_charp)png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6)" ( (type_descriptor "png_charp" type_identifier) ) (call_expression "png_malloc_base(ppVar18,(png_alloc_size_t)unaff_s6)" identifier (argument_list "(ppVar18,(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->iccp_name = pcVar15;" (assignment_expression "info_ptr_00->iccp_name = pcVar15" (field_expression "info_ptr_00->iccp_name" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar15 == (png_charp)0x0) {\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }" if (parenthesized_expression "(pcVar15 == (png_charp)0x0)" ( (binary_expression "pcVar15 == (png_charp)0x0" identifier == (cast_expression "(png_charp)0x0" ( (type_descriptor "png_charp" type_identifier) ) number_literal)) )) (compound_statement "{\n            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            uVar1 = (ppVar18->colorspace).flags;\n            ppVar18->zowner = 0;\n            (ppVar18->colorspace).flags = uVar1 | 0x8000;\n            png_colorspace_sync(ppVar18,info_ptr_00);\n            ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);\n            goto LAB_0002c934;\n          }" { (expression_statement "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;" (assignment_expression "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar18,info_ptr_00);" (call_expression "png_colorspace_sync(ppVar18,info_ptr_00)" identifier (argument_list "(ppVar18,info_ptr_00)" ( identifier , identifier ))) ;) (expression_statement "uVar1 = (ppVar18->colorspace).flags;" (assignment_expression "uVar1 = (ppVar18->colorspace).flags" identifier = (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "ppVar18->zowner = 0;" (assignment_expression "ppVar18->zowner = 0" (field_expression "ppVar18->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "(ppVar18->colorspace).flags = uVar1 | 0x8000;" (assignment_expression "(ppVar18->colorspace).flags = uVar1 | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar18,info_ptr_00);" (call_expression "png_colorspace_sync(ppVar18,info_ptr_00)" identifier (argument_list "(ppVar18,info_ptr_00)" ( identifier , identifier ))) ;) (expression_statement "ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184);" (assignment_expression "ppVar26 = (png_inforp)(*(int *)(finish + -0x7fd4) + -0x184)" identifier = (call_expression "(png_inforp)(*(int *)(finish + -0x7fd4) + -0x184)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(*(int *)(finish + -0x7fd4) + -0x184)" ( (binary_expression "*(int *)(finish + -0x7fd4) + -0x184" (pointer_expression "*(int *)(finish + -0x7fd4)" * (cast_expression "(int *)(finish + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(finish + -0x7fd4)" ( (binary_expression "finish + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (goto_statement "goto LAB_0002c934;" goto statement_identifier ;) })) (expression_statement "(**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6);" (call_expression "(**(code **)(finish + -0x7b2c))(pcVar15,ppVar20,unaff_s6)" (parenthesized_expression "(**(code **)(finish + -0x7b2c))" ( (pointer_expression "**(code **)(finish + -0x7b2c)" * (pointer_expression "*(code **)(finish + -0x7b2c)" * (cast_expression "(code **)(finish + -0x7b2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7b2c)" ( (binary_expression "finish + -0x7b2c" identifier + number_literal) ))))) )) (argument_list "(pcVar15,ppVar20,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar17 = info_ptr_00->free_me;" (assignment_expression "uVar17 = info_ptr_00->free_me" identifier = (field_expression "info_ptr_00->free_me" identifier -> field_identifier)) ;) (expression_statement "uVar16 = info_ptr_00->valid;" (assignment_expression "uVar16 = info_ptr_00->valid" identifier = (field_expression "info_ptr_00->valid" identifier -> field_identifier)) ;) (expression_statement "info_ptr_00->iccp_profile = (png_bytep)profile_00;" (assignment_expression "info_ptr_00->iccp_profile = (png_bytep)profile_00" (field_expression "info_ptr_00->iccp_profile" identifier -> field_identifier) = (cast_expression "(png_bytep)profile_00" ( (type_descriptor "png_bytep" type_identifier) ) identifier)) ;) (expression_statement "info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0;" (assignment_expression "info_ptr_00->iccp_proflen = (png_uint_32)ppStack_5d0" (field_expression "info_ptr_00->iccp_proflen" identifier -> field_identifier) = (cast_expression "(png_uint_32)ppStack_5d0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (expression_statement "ppVar18->read_buffer = (png_bytep)0x0;" (assignment_expression "ppVar18->read_buffer = (png_bytep)0x0" (field_expression "ppVar18->read_buffer" identifier -> field_identifier) = (cast_expression "(png_bytep)0x0" ( (type_descriptor "png_bytep" type_identifier) ) number_literal)) ;) (expression_statement "info_ptr_00->free_me = uVar17 | 0x10;" (assignment_expression "info_ptr_00->free_me = uVar17 | 0x10" (field_expression "info_ptr_00->free_me" identifier -> field_identifier) = (binary_expression "uVar17 | 0x10" identifier | number_literal)) ;) (expression_statement "info_ptr_00->valid = uVar16 | 0x1000;" (assignment_expression "info_ptr_00->valid = uVar16 | 0x1000" (field_expression "info_ptr_00->valid" identifier -> field_identifier) = (binary_expression "uVar16 | 0x1000" identifier | number_literal)) ;) (expression_statement "length = (png_uint_32)ppStack_5d0;" (assignment_expression "length = (png_uint_32)ppStack_5d0" identifier = (cast_expression "(png_uint_32)ppStack_5d0" ( (type_descriptor "png_uint_32" type_identifier) ) identifier)) ;) (expression_statement "png_colorspace_sync(ppVar18,info_ptr_00);" (call_expression "png_colorspace_sync(ppVar18,info_ptr_00)" identifier (argument_list "(ppVar18,info_ptr_00)" ( identifier , identifier ))) ;) })) (expression_statement "ppVar18->zowner = 0;" (assignment_expression "ppVar18->zowner = 0" (field_expression "ppVar18->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "unaff_s2 = ppVar20;" (assignment_expression "unaff_s2 = ppVar20" identifier = identifier) ;) })) (labeled_statement "LAB_0002ce38:\n      ppVar26 = (png_inforp)(ppVar18->zstream).msg;" statement_identifier : (expression_statement "ppVar26 = (png_inforp)(ppVar18->zstream).msg;" (assignment_expression "ppVar26 = (png_inforp)(ppVar18->zstream).msg" identifier = (field_expression "(png_inforp)(ppVar18->zstream).msg" (call_expression "(png_inforp)(ppVar18->zstream)" (parenthesized_expression "(png_inforp)" ( identifier )) (argument_list "(ppVar18->zstream)" ( (field_expression "ppVar18->zstream" identifier -> field_identifier) ))) . field_identifier)) ;)) (expression_statement "ppVar18->zowner = 0;" (assignment_expression "ppVar18->zowner = 0" (field_expression "ppVar18->zowner" identifier -> field_identifier) = number_literal) ;) (expression_statement "finish = pcVar31;" (assignment_expression "finish = pcVar31" identifier = identifier) ;) (labeled_statement "LAB_0002ca50:\n      png_crc_finish(ppVar18,length);" statement_identifier : (expression_statement "png_crc_finish(ppVar18,length);" (call_expression "png_crc_finish(ppVar18,length)" identifier (argument_list "(ppVar18,length)" ( identifier , identifier ))) ;)) (expression_statement "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;" (assignment_expression "(ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) = (binary_expression "(ppVar18->colorspace).flags | 0x8000" (field_expression "(ppVar18->colorspace).flags" (parenthesized_expression "(ppVar18->colorspace)" ( (field_expression "ppVar18->colorspace" identifier -> field_identifier) )) . field_identifier) | number_literal)) ;) (expression_statement "png_colorspace_sync(ppVar18,info_ptr_00);" (call_expression "png_colorspace_sync(ppVar18,info_ptr_00)" identifier (argument_list "(ppVar18,info_ptr_00)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = ppVar26;" (assignment_expression "unaff_s2 = ppVar26" identifier = identifier) ;) }) while (parenthesized_expression "(ppVar26 == (png_inforp)0x0)" ( (binary_expression "ppVar26 == (png_inforp)0x0" identifier == (cast_expression "(png_inforp)0x0" ( (type_descriptor "png_inforp" type_identifier) ) number_literal)) )) ;)) (expression_statement "pcVar31 = *(code **)(finish + -0x7b54);" (assignment_expression "pcVar31 = *(code **)(finish + -0x7b54)" identifier = (pointer_expression "*(code **)(finish + -0x7b54)" * (cast_expression "(code **)(finish + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(finish + -0x7b54)" ( (binary_expression "finish + -0x7b54" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_0002c348(int param_1,int *param_2,int *param_3)\n\n{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}\n\n" (function_definition "void FUN_0002c348(int param_1,int *param_2,int *param_3)\n\n{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}" primitive_type (function_declarator "FUN_0002c348(int param_1,int *param_2,int *param_3)" identifier (parameter_list "(int param_1,int *param_2,int *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int unaff_s0;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined1 *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int *piVar20;" primitive_type (pointer_declarator "*piVar20" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int unaff_s8;" primitive_type identifier ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int *piStack_5d0;" primitive_type (pointer_declarator "*piStack_5d0" * identifier) ;) (declaration "int iStack_5c4;" primitive_type identifier ;) (declaration "int *piStack_5b0;" primitive_type (pointer_declarator "*piStack_5b0" * identifier) ;) (declaration "undefined4 uStack_5ac;" type_identifier identifier ;) (declaration "byte bStack_558;" type_identifier identifier ;) (declaration "byte bStack_557;" type_identifier identifier ;) (declaration "byte bStack_556;" type_identifier identifier ;) (declaration "byte bStack_555;" type_identifier identifier ;) (declaration "undefined4 auStack_554 [31];" type_identifier (array_declarator "auStack_554 [31]" identifier [ number_literal ]) ;) (declaration "byte bStack_4d8;" type_identifier identifier ;) (declaration "byte bStack_4d7;" type_identifier identifier ;) (declaration "byte bStack_4d6;" type_identifier identifier ;) (declaration "byte bStack_4d5;" type_identifier identifier ;) (declaration "undefined1 auStack_4d4 [1024];" type_identifier (array_declarator "auStack_4d4 [1024]" identifier [ number_literal ]) ;) (declaration "int iStack_d4;" primitive_type identifier ;) (declaration "int iStack_d0;" primitive_type identifier ;) (declaration "int *piStack_cc;" primitive_type (pointer_declarator "*piStack_cc" * identifier) ;) (declaration "int *piStack_c8;" primitive_type (pointer_declarator "*piStack_c8" * identifier) ;) (declaration "undefined1 *puStack_c4;" type_identifier (pointer_declarator "*puStack_c4" * identifier) ;) (declaration "int *apiStack_a0 [2];" primitive_type (pointer_declarator "*apiStack_a0 [2]" * (array_declarator "apiStack_a0 [2]" identifier [ number_literal ])) ;) (declaration "undefined *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "byte bStack_8d;" type_identifier identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "int iStack_88;" primitive_type identifier ;) (declaration "undefined *puStack_84;" type_identifier (pointer_declarator "*puStack_84" * identifier) ;) (declaration "int *piStack_80;" primitive_type (pointer_declarator "*piStack_80" * identifier) ;) (declaration "code *pcStack_7c;" type_identifier (pointer_declarator "*pcStack_7c" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "int local_58;" primitive_type identifier ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "int local_50;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "int local_44;" primitive_type identifier ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "undefined1 auStack_3c [4];" type_identifier (array_declarator "auStack_3c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_38 [4];" type_identifier (array_declarator "auStack_38 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_34 [4];" type_identifier (array_declarator "auStack_34 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_30 [4];" type_identifier (array_declarator "auStack_30 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_2c [4];" type_identifier (array_declarator "auStack_2c [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_28 [4];" type_identifier (array_declarator "auStack_28 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_24 [4];" type_identifier (array_declarator "auStack_24 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_20 [4];" type_identifier (array_declarator "auStack_20 [4]" identifier [ number_literal ]) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar6 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar6 = PTR___stack_chk_guard_000534bc" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_1c = *(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 "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" identifier = identifier) ;) (if_statement "if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\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 (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }" { (if_statement "if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 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 (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }" { (if_statement "if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }" if (parenthesized_expression "(param_3 == (int *)0x20)" ( (binary_expression "param_3 == (int *)0x20" identifier == (cast_expression "(int *)0x20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }" { (expression_statement "unaff_s3 = auStack_3c;" (assignment_expression "unaff_s3 = auStack_3c" identifier = identifier) ;) (expression_statement "FUN_0002aef8(param_1,unaff_s3);" (call_expression "FUN_0002aef8(param_1,unaff_s3)" identifier (argument_list "(param_1,unaff_s3)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = FUN_0002b068(param_1,0);" (assignment_expression "iVar2 = 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 (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" { (expression_statement "iVar8 = FUN_0002acb0(unaff_s3);" (assignment_expression "iVar8 = FUN_0002acb0(unaff_s3)" identifier = (call_expression "FUN_0002acb0(unaff_s3)" identifier (argument_list "(unaff_s3)" ( identifier )))) ;) (expression_statement "local_44 = iVar8;" (assignment_expression "local_44 = iVar8" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0002acb0(auStack_38);" (assignment_expression "iVar2 = FUN_0002acb0(auStack_38)" identifier = (call_expression "FUN_0002acb0(auStack_38)" identifier (argument_list "(auStack_38)" ( identifier )))) ;) (expression_statement "local_40 = iVar2;" (assignment_expression "local_40 = iVar2" identifier = identifier) ;) (expression_statement "iVar7 = FUN_0002acb0(auStack_34);" (assignment_expression "iVar7 = FUN_0002acb0(auStack_34)" identifier = (call_expression "FUN_0002acb0(auStack_34)" identifier (argument_list "(auStack_34)" ( identifier )))) ;) (expression_statement "local_5c = iVar7;" (assignment_expression "local_5c = iVar7" identifier = identifier) ;) (expression_statement "iVar13 = FUN_0002acb0(auStack_30);" (assignment_expression "iVar13 = FUN_0002acb0(auStack_30)" identifier = (call_expression "FUN_0002acb0(auStack_30)" identifier (argument_list "(auStack_30)" ( identifier )))) ;) (expression_statement "local_58 = iVar13;" (assignment_expression "local_58 = iVar13" identifier = identifier) ;) (expression_statement "iVar14 = FUN_0002acb0(auStack_2c);" (assignment_expression "iVar14 = FUN_0002acb0(auStack_2c)" identifier = (call_expression "FUN_0002acb0(auStack_2c)" identifier (argument_list "(auStack_2c)" ( identifier )))) ;) (expression_statement "local_54 = iVar14;" (assignment_expression "local_54 = iVar14" identifier = identifier) ;) (expression_statement "iVar3 = FUN_0002acb0(auStack_28);" (assignment_expression "iVar3 = FUN_0002acb0(auStack_28)" identifier = (call_expression "FUN_0002acb0(auStack_28)" identifier (argument_list "(auStack_28)" ( identifier )))) ;) (expression_statement "local_50 = iVar3;" (assignment_expression "local_50 = iVar3" identifier = identifier) ;) (expression_statement "iVar4 = FUN_0002acb0(auStack_24);" (assignment_expression "iVar4 = FUN_0002acb0(auStack_24)" identifier = (call_expression "FUN_0002acb0(auStack_24)" identifier (argument_list "(auStack_24)" ( identifier )))) ;) (expression_statement "local_4c = iVar4;" (assignment_expression "local_4c = iVar4" identifier = identifier) ;) (expression_statement "local_48 = FUN_0002acb0(auStack_20);" (assignment_expression "local_48 = FUN_0002acb0(auStack_20)" identifier = (call_expression "FUN_0002acb0(auStack_20)" identifier (argument_list "(auStack_20)" ( identifier )))) ;) (if_statement "if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" if (parenthesized_expression "(((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1))))))" ( (binary_expression "((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))" (parenthesized_expression "((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1))))" ( (binary_expression "(((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))" (parenthesized_expression "(((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1))" ( (binary_expression "((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)" (parenthesized_expression "((iVar8 == -1) || (iVar2 == -1))" ( (binary_expression "(iVar8 == -1) || (iVar2 == -1)" (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) ))) )) || (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) ))) )) || (parenthesized_expression "((iVar13 == -1 || (iVar14 == -1)))" ( (parenthesized_expression "(iVar13 == -1 || (iVar14 == -1))" ( (binary_expression "iVar13 == -1 || (iVar14 == -1)" (binary_expression "iVar13 == -1" identifier == number_literal) || (parenthesized_expression "(iVar14 == -1)" ( (binary_expression "iVar14 == -1" identifier == number_literal) ))) )) ))) )) || (parenthesized_expression "((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))" ( (parenthesized_expression "(iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1))))" ( (binary_expression "iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))" (binary_expression "iVar3 == -1" identifier == number_literal) || (parenthesized_expression "((iVar4 == -1 || (local_48 == -1)))" ( (parenthesized_expression "(iVar4 == -1 || (local_48 == -1))" ( (binary_expression "iVar4 == -1 || (local_48 == -1)" (binary_expression "iVar4 == -1" identifier == number_literal) || (parenthesized_expression "(local_48 == -1)" ( (binary_expression "local_48 == -1" identifier == number_literal) ))) )) ))) )) ))) )) (compound_statement "{\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }" { (expression_statement "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c)" (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 + 0x70c)" ( identifier , (binary_expression "PTR_s_nt_0005301c + 0x70c" identifier + number_literal) ))) ;) }) (else_clause "else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" else (compound_statement "{\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" { (expression_statement "uVar1 = *(ushort *)(param_1 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(param_1 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(param_1 + 0x3e2)" * (cast_expression "(ushort *)(param_1 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e2)" ( (binary_expression "param_1 + 0x3e2" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" identifier = identifier) ;) (if_statement "if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -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 *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }" { (if_statement "if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -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 *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }" { (expression_statement "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;" (assignment_expression "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10" (pointer_expression "*(ushort *)(param_1 + 0x3e2)" * (cast_expression "(ushort *)(param_1 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e2)" ( (binary_expression "param_1 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x10" identifier | number_literal)) ;) (expression_statement "param_3 = &local_5c;" (assignment_expression "param_3 = &local_5c" identifier = (pointer_expression "&local_5c" & identifier)) ;) (expression_statement "FUN_00017e00(param_1,param_1 + 0x398,param_3,1);" (call_expression "FUN_00017e00(param_1,param_1 + 0x398,param_3,1)" identifier (argument_list "(param_1,param_1 + 0x398,param_3,1)" ( identifier , (binary_expression "param_1 + 0x398" identifier + number_literal) , identifier , number_literal ))) ;) (expression_statement "FUN_00015834(param_1,param_2);" (call_expression "FUN_00015834(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) }) (else_clause "else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }" else (compound_statement "{\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }" { (expression_statement "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(param_1 + 0x3e2)" * (cast_expression "(ushort *)(param_1 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3e2)" ( (binary_expression "param_1 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(param_1,param_2);" (call_expression "FUN_00015834(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18)" (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 + -0x1a18)" ( identifier , (binary_expression "PTR_s_nt_0005301c + -0x1a18" identifier + number_literal) ))) ;) }))) })) }))) })) }) (else_clause "else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }" else (compound_statement "{\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\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 + 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) ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }" else (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\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) ))) ;) }))) (if_statement "if (local_1c == *(int *)puVar6) {\n      return;\n    }" if (parenthesized_expression "(local_1c == *(int *)puVar6)" ( (binary_expression "local_1c == *(int *)puVar6" identifier == (pointer_expression "*(int *)puVar6" * (cast_expression "(int *)puVar6" ( (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_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) })) (expression_statement "pcVar24 = FUN_0002c5dc;" (assignment_expression "pcVar24 = FUN_0002c5dc" identifier = identifier) ;) (expression_statement "piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);" (assignment_expression "piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4)" identifier = (cast_expression "(int *)(PTR_s_nt_0005301c + 0x6a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_nt_0005301c + 0x6a4)" ( (binary_expression "PTR_s_nt_0005301c + 0x6a4" identifier + number_literal) )))) ;) (expression_statement "puVar21 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar21 = 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 "puVar23 = puVar21 + 0x2ea14;" (assignment_expression "puVar23 = puVar21 + 0x2ea14" identifier = (binary_expression "puVar21 + 0x2ea14" identifier + number_literal)) ;) (expression_statement "puStack_84 = puVar6;" (assignment_expression "puStack_84 = puVar6" identifier = identifier) ;) (expression_statement "piVar16 = *(int **)(puVar21 + 0x26ee0);" (assignment_expression "piVar16 = *(int **)(puVar21 + 0x26ee0)" identifier = (pointer_expression "*(int **)(puVar21 + 0x26ee0)" * (cast_expression "(int **)(puVar21 + 0x26ee0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x26ee0)" ( (binary_expression "puVar21 + 0x26ee0" identifier + number_literal) ))))) ;) (expression_statement "iStack_8c = *piVar16;" (assignment_expression "iStack_8c = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "puStack_98 = puVar23;" (assignment_expression "puStack_98 = puVar23" identifier = identifier) ;) (expression_statement "iStack_88 = unaff_s0;" (assignment_expression "iStack_88 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_80 = unaff_s2;" (assignment_expression "piStack_80 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_7c = pcVar24;" (assignment_expression "pcStack_7c = pcVar24" identifier = identifier) ;) (if_statement "if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" if (parenthesized_expression "((*(uint *)(iVar8 + 0x124) & 1) == 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x124) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x124) & 1)" ( (binary_expression "*(uint *)(iVar8 + 0x124) & 1" (pointer_expression "*(uint *)(iVar8 + 0x124)" * (cast_expression "(uint *)(iVar8 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x124)" ( (binary_expression "iVar8 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }" { (expression_statement "piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);" (assignment_expression "piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4)" identifier = (cast_expression "(int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x26a40) + 0x6a4)" ( (binary_expression "*(int *)(puVar21 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(puVar21 + 0x26a40)" * (cast_expression "(int *)(puVar21 + 0x26a40)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x26a40)" ( (binary_expression "puVar21 + 0x26a40" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puVar21 + 0x26f40))();" (call_expression "(**(code **)(puVar21 + 0x26f40))()" (parenthesized_expression "(**(code **)(puVar21 + 0x26f40))" ( (pointer_expression "**(code **)(puVar21 + 0x26f40)" * (pointer_expression "*(code **)(puVar21 + 0x26f40)" * (cast_expression "(code **)(puVar21 + 0x26f40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x26f40)" ( (binary_expression "puVar21 + 0x26f40" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) }) (else_clause "else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" else (compound_statement "{\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" { (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) (if_statement "if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" if (parenthesized_expression "((*(uint *)(iVar8 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(iVar8 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x124) & 6)" ( (binary_expression "*(uint *)(iVar8 + 0x124) & 6" (pointer_expression "*(uint *)(iVar8 + 0x124)" * (cast_expression "(uint *)(iVar8 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x124)" ( (binary_expression "iVar8 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }" { (if_statement "if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" if (parenthesized_expression "(param_3 == (int *)0x1)" ( (binary_expression "param_3 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }" { (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar7 = FUN_0002b068();" (assignment_expression "iVar7 = FUN_0002b068()" identifier = (call_expression "FUN_0002b068()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" { (expression_statement "uVar1 = *(ushort *)(iVar8 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(iVar8 + 0x3e2)" identifier = (pointer_expression "*(ushort *)(iVar8 + 0x3e2)" * (cast_expression "(ushort *)(iVar8 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3e2)" ( (binary_expression "iVar8 + 0x3e2" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -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              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }" { (if_statement "if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -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              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }" { (expression_statement "param_3 = (int *)(uint)bStack_8d;" (assignment_expression "param_3 = (int *)(uint)bStack_8d" identifier = (cast_expression "(int *)(uint)bStack_8d" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)bStack_8d" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "FUN_00018198(iVar8,iVar8 + 0x398);" (call_expression "FUN_00018198(iVar8,iVar8 + 0x398)" identifier (argument_list "(iVar8,iVar8 + 0x398)" ( identifier , (binary_expression "iVar8 + 0x398" identifier + number_literal) ))) ;) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) (expression_statement "piVar12 = piVar11;" (assignment_expression "piVar12 = piVar11" identifier = identifier) ;) (expression_statement "FUN_00015834();" (call_expression "FUN_00015834()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" else (compound_statement "{\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" { (expression_statement "*(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(iVar8 + 0x3e2)" * (cast_expression "(ushort *)(iVar8 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x3e2)" ( (binary_expression "iVar8 + 0x3e2" identifier + number_literal) )))) = (binary_expression "uVar1 | 0x8000" identifier | number_literal)) ;) (expression_statement "FUN_00015834(iVar8,piVar11);" (call_expression "FUN_00015834(iVar8,piVar11)" identifier (argument_list "(iVar8,piVar11)" ( identifier , identifier ))) ;) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" identifier = (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" identifier = identifier) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) })) })) }) (else_clause "else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" else (compound_statement "{\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" identifier = (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) }) (else_clause "else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" else (compound_statement "{\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" identifier = (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" ( (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" * (cast_expression "(int *)(puStack_98 + -0x7fd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puStack_98 + -0x7fd4)" ( (binary_expression "puStack_98 + -0x7fd4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" ( (pointer_expression "**(code **)(puStack_98 + -0x7b54)" * (pointer_expression "*(code **)(puStack_98 + -0x7b54)" * (cast_expression "(code **)(puStack_98 + -0x7b54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puStack_98 + -0x7b54)" ( (binary_expression "puStack_98 + -0x7b54" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (expression_statement "unaff_s0 = iVar8;" (assignment_expression "unaff_s0 = iVar8" identifier = identifier) ;) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) (expression_statement "puVar23 = puStack_98;" (assignment_expression "puVar23 = puStack_98" identifier = identifier) ;) (if_statement "if (iStack_8c == *piVar16) {\n      return;\n    }" if (parenthesized_expression "(iStack_8c == *piVar16)" ( (binary_expression "iStack_8c == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "pcVar24 = *(code **)(puVar23 + -0x7b6c);" (assignment_expression "pcVar24 = *(code **)(puVar23 + -0x7b6c)" identifier = (pointer_expression "*(code **)(puVar23 + -0x7b6c)" * (cast_expression "(code **)(puVar23 + -0x7b6c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar23 + -0x7b6c)" ( (binary_expression "puVar23 + -0x7b6c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar15 = *(int **)(pcVar24 + 0x26d4c);" (assignment_expression "piVar15 = *(int **)(pcVar24 + 0x26d4c)" identifier = (pointer_expression "*(int **)(pcVar24 + 0x26d4c)" * (cast_expression "(int **)(pcVar24 + 0x26d4c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d4c)" ( (binary_expression "pcVar24 + 0x26d4c" identifier + number_literal) ))))) ;) (expression_statement "piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);" (assignment_expression "piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1)" identifier = (cast_expression "(int *)(*(uint *)(iVar2 + 0x124) & 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(iVar2 + 0x124) & 1)" ( (binary_expression "*(uint *)(iVar2 + 0x124) & 1" (pointer_expression "*(uint *)(iVar2 + 0x124)" * (cast_expression "(uint *)(iVar2 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x124)" ( (binary_expression "iVar2 + 0x124" identifier + number_literal) )))) & number_literal) )))) ;) (expression_statement "iStack_d4 = *piVar15;" (assignment_expression "iStack_d4 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "piVar11 = unaff_s2;" (assignment_expression "piVar11 = unaff_s2" identifier = identifier) ;) (expression_statement "iStack_d0 = unaff_s0;" (assignment_expression "iStack_d0 = unaff_s0" identifier = identifier) ;) (expression_statement "piStack_cc = piVar16;" (assignment_expression "piStack_cc = piVar16" identifier = identifier) ;) (expression_statement "piStack_c8 = unaff_s2;" (assignment_expression "piStack_c8 = unaff_s2" identifier = identifier) ;) (expression_statement "puStack_c4 = unaff_s3;" (assignment_expression "puStack_c4 = unaff_s3" identifier = identifier) ;) (expression_statement "apiStack_a0[0] = param_3;" (assignment_expression "apiStack_a0[0] = param_3" (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (piVar19 == (int *)0x0) goto LAB_0002cd34;" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd34;" goto statement_identifier ;)) (if_statement "if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" if (parenthesized_expression "((*(uint *)(iVar2 + 0x124) & 6) == 0)" ( (binary_expression "(*(uint *)(iVar2 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(iVar2 + 0x124) & 6)" ( (binary_expression "*(uint *)(iVar2 + 0x124) & 6" (pointer_expression "*(uint *)(iVar2 + 0x124)" * (cast_expression "(uint *)(iVar2 + 0x124)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x124)" ( (binary_expression "iVar2 + 0x124" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }" { (if_statement "if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" if (parenthesized_expression "((int *)0xd < param_3)" ( (binary_expression "(int *)0xd < param_3" (cast_expression "(int *)0xd" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" { (if_statement "if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" if (parenthesized_expression "((short)*(ushort *)(iVar2 + 0x3e2) < 0)" ( (binary_expression "(short)*(ushort *)(iVar2 + 0x3e2) < 0" (cast_expression "(short)*(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 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 *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }" if (parenthesized_expression "((*(ushort *)(iVar2 + 0x3e2) & 4) != 0)" ( (binary_expression "(*(ushort *)(iVar2 + 0x3e2) & 4) != 0" (parenthesized_expression "(*(ushort *)(iVar2 + 0x3e2) & 4)" ( (binary_expression "*(ushort *)(iVar2 + 0x3e2) & 4" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }" { (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x71c)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x71c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);" statement_identifier : (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" identifier (argument_list "(iVar2,apiStack_a0[0])" ( identifier , (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002c934;" goto statement_identifier ;) })) (expression_statement "piVar16 = (int *)0x51;" (assignment_expression "piVar16 = (int *)0x51" identifier = (cast_expression "(int *)0x51" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }" if (parenthesized_expression "(param_3 < (int *)0x51)" ( (binary_expression "param_3 < (int *)0x51" identifier < (cast_expression "(int *)0x51" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piVar16 = param_3;\n      }" { (expression_statement "piVar16 = param_3;" (assignment_expression "piVar16 = param_3" identifier = identifier) ;) })) (expression_statement "piVar11 = &uStack_5ac;" (assignment_expression "piVar11 = &uStack_5ac" identifier = (pointer_expression "&uStack_5ac" & identifier)) ;) (expression_statement "param_3 = piVar16;" (assignment_expression "param_3 = piVar16" identifier = identifier) ;) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" identifier (argument_list "()" ( ))) ;) (expression_statement "apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);" (assignment_expression "apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16)" (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) = (cast_expression "(int *)((int)apiStack_a0[0] - (int)piVar16)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apiStack_a0[0] - (int)piVar16)" ( (binary_expression "(int)apiStack_a0[0] - (int)piVar16" (cast_expression "(int)apiStack_a0[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) - (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" if (parenthesized_expression "((int *)0xa < apiStack_a0[0])" ( (binary_expression "(int *)0xa < apiStack_a0[0]" (cast_expression "(int *)0xa" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) )) (compound_statement "{\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" { (expression_statement "pcVar5 = (char *)((int)&uStack_5ac + 1);" (assignment_expression "pcVar5 = (char *)((int)&uStack_5ac + 1)" identifier = (cast_expression "(char *)((int)&uStack_5ac + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_5ac + 1)" ( (binary_expression "(int)&uStack_5ac + 1" (cast_expression "(int)&uStack_5ac" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_5ac" & identifier)) + number_literal) )))) ;) (if_statement "if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" if (parenthesized_expression "(uStack_5ac._0_1_ == '\0')" ( (binary_expression "uStack_5ac._0_1_ == '\0'" (field_expression "uStack_5ac._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }" { (labeled_statement "LAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);" statement_identifier : (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x748)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x748)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x748" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;)) }) (else_clause "else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" else (compound_statement "{\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" { (do_statement "do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);" do (compound_statement "{\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          }" { (expression_statement "piVar20 = piVar19;" (assignment_expression "piVar20 = piVar19" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)((int)piVar20 + 1);" (assignment_expression "unaff_s6 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar19 = piVar20;" (assignment_expression "piVar19 = piVar20" identifier = identifier) ;) (if_statement "if (*pcVar5 == '\0') goto LAB_0002c86c;" if (parenthesized_expression "(*pcVar5 == '\0')" ( (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0002c86c;" goto statement_identifier ;)) (expression_statement "piVar19 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar19 = (int *)((int)piVar20 + 1)" identifier = (cast_expression "(int *)((int)piVar20 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 1)" ( (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (piVar19 == (int *)0x50) goto LAB_0002c974;" if (parenthesized_expression "(piVar19 == (int *)0x50)" ( (binary_expression "piVar19 == (int *)0x50" identifier == (cast_expression "(int *)0x50" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002c974;" goto statement_identifier ;)) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" identifier = (binary_expression "pcVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar16 != piVar19)" ( (binary_expression "piVar16 != piVar19" identifier != identifier) )) ;) (expression_statement "unaff_s6 = (int *)((int)piVar20 + 2);" (assignment_expression "unaff_s6 = (int *)((int)piVar20 + 2)" identifier = (cast_expression "(int *)((int)piVar20 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar20 + 2)" ( (binary_expression "(int)piVar20 + 2" (cast_expression "(int)piVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (labeled_statement "LAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" statement_identifier : (if_statement "if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" if (parenthesized_expression "((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0'))" ( (binary_expression "(unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')" (parenthesized_expression "(unaff_s6 < piVar16)" ( (binary_expression "unaff_s6 < piVar16" identifier < identifier) )) && (parenthesized_expression "(*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')" ( (binary_expression "*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0'" (pointer_expression "*(char *)((int)&uStack_5ac + (int)unaff_s6)" * (cast_expression "(char *)((int)&uStack_5ac + (int)unaff_s6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&uStack_5ac + (int)unaff_s6)" ( (binary_expression "(int)&uStack_5ac + (int)unaff_s6" (cast_expression "(int)&uStack_5ac" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_5ac" & identifier)) + (cast_expression "(int)unaff_s6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" { (expression_statement "iVar8 = FUN_0002a9cc(iVar2,0x69434350);" (assignment_expression "iVar8 = FUN_0002a9cc(iVar2,0x69434350)" identifier = (call_expression "FUN_0002a9cc(iVar2,0x69434350)" identifier (argument_list "(iVar2,0x69434350)" ( identifier , number_literal )))) ;) (if_statement "if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }" { (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" identifier = (pointer_expression "*(int **)(iVar2 + 0x14c)" * (cast_expression "(int **)(iVar2 + 0x14c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) ))))) ;) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" identifier = (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);" (call_expression "(**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26c24))" ( (pointer_expression "**(code **)(pcVar24 + 0x26c24)" * (pointer_expression "*(code **)(pcVar24 + 0x26c24)" * (cast_expression "(code **)(pcVar24 + 0x26c24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26c24)" ( (binary_expression "pcVar24 + 0x26c24" identifier + number_literal) ))))) )) (argument_list "(&bStack_558,0,0x84)" ( (pointer_expression "&bStack_558" & identifier) , number_literal , number_literal ))) ;) (expression_statement "puVar6 = (undefined *)((int)piVar19 + 2);" (assignment_expression "puVar6 = (undefined *)((int)piVar19 + 2)" identifier = (cast_expression "(undefined *)((int)piVar19 + 2)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + 2)" ( (binary_expression "(int)piVar19 + 2" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));" (assignment_expression "piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19))" identifier = (cast_expression "(int *)((int)piVar16 + (-2 - (int)piVar19))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar16 + (-2 - (int)piVar19))" ( (binary_expression "(int)piVar16 + (-2 - (int)piVar19)" (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-2 - (int)piVar19)" ( (binary_expression "-2 - (int)piVar19" number_literal - (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "piStack_5b0 = (int *)0x84;" (assignment_expression "piStack_5b0 = (int *)0x84" identifier = (cast_expression "(int *)0x84" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);" (assignment_expression "*(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6)" (pointer_expression "*(undefined **)(iVar2 + 0x134)" * (cast_expression "(undefined **)(iVar2 + 0x134)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x134)" ( (binary_expression "iVar2 + 0x134" identifier + number_literal) )))) = (cast_expression "(undefined *)((int)piVar11 + (int)puVar6)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar11 + (int)puVar6)" ( (binary_expression "(int)piVar11 + (int)puVar6" (cast_expression "(int)piVar11" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*(int **)(iVar2 + 0x138) = piVar19;" (assignment_expression "*(int **)(iVar2 + 0x138) = piVar19" (pointer_expression "*(int **)(iVar2 + 0x138)" * (cast_expression "(int **)(iVar2 + 0x138)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x138)" ( (binary_expression "iVar2 + 0x138" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" if (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" ( (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" * (cast_expression "(int *)(iVar2 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x1cc)" * (cast_expression "(int *)(iVar2 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1cc)" ( (binary_expression "iVar2 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }" { (expression_statement "iVar8 = *(int *)(pcVar24 + 0x26a74);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x26a74)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x26a74)" * (cast_expression "(int *)(pcVar24 + 0x26a74)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x26a74)" ( (binary_expression "pcVar24 + 0x26a74" identifier + number_literal) ))))) ;) (expression_statement "*(byte **)(iVar2 + 0x140) = &bStack_558;" (assignment_expression "*(byte **)(iVar2 + 0x140) = &bStack_558" (pointer_expression "*(byte **)(iVar2 + 0x140)" * (cast_expression "(byte **)(iVar2 + 0x140)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x140)" ( (binary_expression "iVar2 + 0x140" identifier + number_literal) )))) = (pointer_expression "&bStack_558" & identifier)) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" * (cast_expression "(undefined4 *)(iVar2 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x144)" ( (binary_expression "iVar2 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);" (call_expression "FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" identifier (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" ( identifier , identifier , identifier , (pointer_expression "&piStack_5b0" & identifier) , number_literal ))) ;) (if_statement "if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }" if (parenthesized_expression "(piStack_5b0 == (int *)0x0)" ( (binary_expression "piStack_5b0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }" { (expression_statement "iStack_5c4 = iVar2 + 0x398;" (assignment_expression "iStack_5c4 = iVar2 + 0x398" identifier = (binary_expression "iVar2 + 0x398" identifier + number_literal)) ;) (expression_statement "piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);" (assignment_expression "piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" identifier = (cast_expression "(int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" ( (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100" (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555" (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000" (binary_expression "(uint)bStack_558 * 0x1000000" (cast_expression "(uint)bStack_558" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_557 * 0x10000" (cast_expression "(uint)bStack_557" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_555" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_556 * 0x100" (cast_expression "(uint)bStack_556" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) ;) (expression_statement "param_3 = piVar11;" (assignment_expression "param_3 = piVar11" identifier = identifier) ;) (expression_statement "iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);" (assignment_expression "iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0)" identifier = (call_expression "FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0)" identifier (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" if (parenthesized_expression "((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)" ( (comma_expression "param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0" (assignment_expression "param_3 = piVar11" identifier = identifier) , (comma_expression "iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0" (assignment_expression "iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" identifier = (call_expression "FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" identifier (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" ( identifier , identifier , identifier , identifier , (pointer_expression "&bStack_558" & identifier) , (pointer_expression "*(undefined1 *)(iVar2 + 0x1ff)" * (cast_expression "(undefined1 *)(iVar2 + 0x1ff)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1ff)" ( (binary_expression "iVar2 + 0x1ff" identifier + number_literal) )))) )))) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (compound_statement "{\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" { (expression_statement "param_3 = (int *)0x2;" (assignment_expression "param_3 = (int *)0x2" identifier = (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);" (assignment_expression "piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2)" identifier = (cast_expression "(int *)FUN_0002ab84(iVar2,piStack_5d0,2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002ab84(iVar2,piStack_5d0,2)" identifier (argument_list "(iVar2,piStack_5d0,2)" ( identifier , identifier , number_literal ))))) ;) (if_statement "if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(piVar19 == (int *)0x0)" ( (binary_expression "piVar19 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "iVar8 = *(int *)(pcVar24 + 0x268ac);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar16 = (int *)(iVar8 + -0x184);" (assignment_expression "piVar16 = (int *)(iVar8 + -0x184)" identifier = (cast_expression "(int *)(iVar8 + -0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x184)" ( (binary_expression "iVar8 + -0x184" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) (expression_statement "piVar16 = piVar19;" (assignment_expression "piVar16 = piVar19" identifier = identifier) ;) (expression_statement "pbVar17 = &bStack_558;" (assignment_expression "pbVar17 = &bStack_558" identifier = (pointer_expression "&bStack_558" & identifier)) ;) (do_statement "do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);" do (compound_statement "{\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  }" { (expression_statement "pbVar18 = pbVar17 + 0x10;" (assignment_expression "pbVar18 = pbVar17 + 0x10" identifier = (binary_expression "pbVar17 + 0x10" identifier + number_literal)) ;) (expression_statement "iVar14 = *(int *)(pbVar17 + 4);" (assignment_expression "iVar14 = *(int *)(pbVar17 + 4)" identifier = (pointer_expression "*(int *)(pbVar17 + 4)" * (cast_expression "(int *)(pbVar17 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 4)" ( (binary_expression "pbVar17 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(pbVar17 + 8);" (assignment_expression "iVar13 = *(int *)(pbVar17 + 8)" identifier = (pointer_expression "*(int *)(pbVar17 + 8)" * (cast_expression "(int *)(pbVar17 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 8)" ( (binary_expression "pbVar17 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(pbVar17 + 0xc);" (assignment_expression "iVar7 = *(int *)(pbVar17 + 0xc)" identifier = (pointer_expression "*(int *)(pbVar17 + 0xc)" * (cast_expression "(int *)(pbVar17 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar17 + 0xc)" ( (binary_expression "pbVar17 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*piVar16 = *(int *)pbVar17;" (assignment_expression "*piVar16 = *(int *)pbVar17" (pointer_expression "*piVar16" * identifier) = (pointer_expression "*(int *)pbVar17" * (cast_expression "(int *)pbVar17" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar16[1] = iVar14;" (assignment_expression "piVar16[1] = iVar14" (subscript_expression "piVar16[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[2] = iVar13;" (assignment_expression "piVar16[2] = iVar13" (subscript_expression "piVar16[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16[3] = iVar7;" (assignment_expression "piVar16[3] = iVar7" (subscript_expression "piVar16[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar16 = piVar16 + 4;" (assignment_expression "piVar16 = piVar16 + 4" identifier = (binary_expression "piVar16 + 4" identifier + number_literal)) ;) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" identifier = identifier) ;) }) while (parenthesized_expression "(pbVar18 != &bStack_4d8)" ( (binary_expression "pbVar18 != &bStack_4d8" identifier != (pointer_expression "&bStack_4d8" & identifier)) )) ;) (expression_statement "*piVar16 = *(int *)pbVar18;" (assignment_expression "*piVar16 = *(int *)pbVar18" (pointer_expression "*piVar16" * identifier) = (pointer_expression "*(int *)pbVar18" * (cast_expression "(int *)pbVar18" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;" (assignment_expression "iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100" identifier = (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100" (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5" (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000" (binary_expression "(uint)bStack_4d8 * 0x1000000" (cast_expression "(uint)bStack_4d8" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + (binary_expression "(uint)bStack_4d7 * 0x10000" (cast_expression "(uint)bStack_4d7" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + (cast_expression "(uint)bStack_4d5" ( (type_descriptor "uint" type_identifier) ) identifier)) + (binary_expression "(uint)bStack_4d6 * 0x100" (cast_expression "(uint)bStack_4d6" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "piVar16 = (int *)(iVar7 * 0xc);" (assignment_expression "piVar16 = (int *)(iVar7 * 0xc)" identifier = (cast_expression "(int *)(iVar7 * 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 * 0xc)" ( (binary_expression "iVar7 * 0xc" identifier * number_literal) )))) ;) (expression_statement "piStack_5b0 = piVar16;" (assignment_expression "piStack_5b0 = piVar16" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" ( (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" * (cast_expression "(int *)(iVar2 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x1cc)" * (cast_expression "(int *)(iVar2 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1cc)" ( (binary_expression "iVar2 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }" { (expression_statement "*(int **)(iVar2 + 0x140) = piVar19 + 0x21;" (assignment_expression "*(int **)(iVar2 + 0x140) = piVar19 + 0x21" (pointer_expression "*(int **)(iVar2 + 0x140)" * (cast_expression "(int **)(iVar2 + 0x140)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x140)" ( (binary_expression "iVar2 + 0x140" identifier + number_literal) )))) = (binary_expression "piVar19 + 0x21" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" * (cast_expression "(undefined4 *)(iVar2 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x144)" ( (binary_expression "iVar2 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);" (call_expression "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" (parenthesized_expression "(*(code *)(iVar8 + -0x47c4))" ( (pointer_expression "*(code *)(iVar8 + -0x47c4)" * (cast_expression "(code *)(iVar8 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x47c4)" ( (binary_expression "iVar8 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" ( identifier , identifier , identifier , (pointer_expression "&piStack_5b0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" else (compound_statement "{\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" { (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" * (cast_expression "(int *)(iVar2 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (if_statement "if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;" if (parenthesized_expression "(piStack_5b0 != (int *)0x0)" ( (binary_expression "piStack_5b0 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ca44;" goto statement_identifier ;)) (expression_statement "param_3 = piVar11;" (assignment_expression "param_3 = piVar11" identifier = identifier) ;) (expression_statement "iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);" (assignment_expression "iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" identifier = (call_expression "FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" identifier (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }" { (expression_statement "piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;" (assignment_expression "piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21" identifier = (binary_expression "piStack_5d0 + iVar7 * -3 + -0x21" (binary_expression "piStack_5d0 + iVar7 * -3" identifier + (binary_expression "iVar7 * -3" identifier * number_literal)) + number_literal)) ;) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" ( (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" * (cast_expression "(int *)(iVar2 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) == (pointer_expression "*(int *)(iVar2 + 0x1cc)" * (cast_expression "(int *)(iVar2 + 0x1cc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x1cc)" ( (binary_expression "iVar2 + 0x1cc" identifier + number_literal) ))))) )) (compound_statement "{\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }" { (expression_statement "*(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));" (assignment_expression "*(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21))" (pointer_expression "*(undefined **)(iVar2 + 0x140)" * (cast_expression "(undefined **)(iVar2 + 0x140)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x140)" ( (binary_expression "iVar2 + 0x140" identifier + number_literal) )))) = (cast_expression "(undefined *)((int)piVar19 + (int)(piVar16 + 0x21))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar19 + (int)(piVar16 + 0x21))" ( (binary_expression "(int)piVar19 + (int)(piVar16 + 0x21)" (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(piVar16 + 0x21)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar16 + 0x21)" ( (binary_expression "piVar16 + 0x21" identifier + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" * (cast_expression "(undefined4 *)(iVar2 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x144)" ( (binary_expression "iVar2 + 0x144" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);" (call_expression "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1)" (parenthesized_expression "(*(code *)(iVar8 + -0x47c4))" ( (pointer_expression "*(code *)(iVar8 + -0x47c4)" * (cast_expression "(code *)(iVar8 + -0x47c4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -0x47c4)" ( (binary_expression "iVar8 + -0x47c4" identifier + number_literal) )))) )) (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1)" ( identifier , identifier , identifier , (pointer_expression "&piStack_5b0" & identifier) , number_literal ))) ;) }) (else_clause "else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" else (compound_statement "{\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" { (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" * (cast_expression "(int *)(iVar2 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" identifier = (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) ;) (if_statement "if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" if (parenthesized_expression "(apiStack_a0[0] == (int *)0x0)" ( (binary_expression "apiStack_a0[0] == (int *)0x0" (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" { (if_statement "if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;" if (parenthesized_expression "(piStack_5b0 == (int *)0x0)" ( (binary_expression "piStack_5b0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002cd68;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;) })) (expression_statement "piVar16 = piStack_5b0;" (assignment_expression "piVar16 = piStack_5b0" identifier = identifier) ;) (if_statement "if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;" if (parenthesized_expression "(*(int *)(iVar2 + 0x128) << 0xb < 0)" ( (binary_expression "*(int *)(iVar2 + 0x128) << 0xb < 0" (binary_expression "*(int *)(iVar2 + 0x128) << 0xb" (pointer_expression "*(int *)(iVar2 + 0x128)" * (cast_expression "(int *)(iVar2 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x128)" ( (binary_expression "iVar2 + 0x128" identifier + number_literal) )))) << number_literal) < number_literal) )) (goto_statement "goto LAB_0002cd44;" goto statement_identifier ;)) (expression_statement "iVar8 = *(int *)(pcVar24 + 0x268ac);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x268ac)" identifier = (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar16 = (int *)(iVar8 + 0x674);" (assignment_expression "piVar16 = (int *)(iVar8 + 0x674)" identifier = (cast_expression "(int *)(iVar8 + 0x674)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x674)" ( (binary_expression "iVar8 + 0x674" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0002c900;" goto statement_identifier ;) })) })) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" identifier (argument_list "(iVar2,apiStack_a0[0])" ( identifier , (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) ))) ;) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })) }) (else_clause "else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" else (compound_statement "{\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" { (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" * (cast_expression "(int *)(iVar2 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) )))) = (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal)) ;) }))) (labeled_statement "LAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);" statement_identifier : (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" identifier = (pointer_expression "*(int **)(iVar2 + 0x14c)" * (cast_expression "(int **)(iVar2 + 0x14c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" identifier = (subscript_expression "apiStack_a0[0]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ca50;" goto statement_identifier ;) }))) (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x730)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x730)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x730" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 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 **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);" (call_expression "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c)" ( identifier , (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x237c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) }) (else_clause "else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" else (compound_statement "{\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" { (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);" (call_expression "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d2c))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d2c)" * (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) )) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c)" ( identifier , (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x68c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) }))) (labeled_statement "LAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" statement_identifier : (while_statement "while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" { (if_statement "if (iStack_d4 == *piVar15) {\n      return;\n    }" if (parenthesized_expression "(iStack_d4 == *piVar15)" ( (binary_expression "iStack_d4 == *piVar15" identifier == (pointer_expression "*piVar15" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (expression_statement "(**(code **)(pcVar24 + 0x26d14))();" (call_expression "(**(code **)(pcVar24 + 0x26d14))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d14))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d14)" * (pointer_expression "*(code **)(pcVar24 + 0x26d14)" * (cast_expression "(code **)(pcVar24 + 0x26d14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d14)" ( (binary_expression "pcVar24 + 0x26d14" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" identifier = identifier) ;) (expression_statement "piVar11 = unaff_s2;" (assignment_expression "piVar11 = unaff_s2" identifier = identifier) ;) (expression_statement "unaff_s8 = iVar2;" (assignment_expression "unaff_s8 = iVar2" identifier = identifier) ;) (labeled_statement "LAB_0002cd34:\n    iVar2 = unaff_s8;" statement_identifier : (expression_statement "iVar2 = unaff_s8;" (assignment_expression "iVar2 = unaff_s8" identifier = identifier) ;)) (expression_statement "piVar12 = piVar16;" (assignment_expression "piVar12 = piVar16" identifier = identifier) ;) (expression_statement "piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();" (assignment_expression "piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))()" identifier = (cast_expression "(int *)(**(code **)(pcVar24 + 0x26dac))()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcVar24 + 0x26dac))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x26dac))" ( (pointer_expression "**(code **)(pcVar24 + 0x26dac)" * (pointer_expression "*(code **)(pcVar24 + 0x26dac)" * (cast_expression "(code **)(pcVar24 + 0x26dac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26dac)" ( (binary_expression "pcVar24 + 0x26dac" identifier + number_literal) ))))) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;" statement_identifier : (if_statement "if (piVar16 != (int *)0x0) goto LAB_0002ce38;" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002ce38;" goto statement_identifier ;))) (expression_statement "(**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);" (call_expression "(**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26bf8))" ( (pointer_expression "**(code **)(pcVar24 + 0x26bf8)" * (pointer_expression "*(code **)(pcVar24 + 0x26bf8)" * (cast_expression "(code **)(pcVar24 + 0x26bf8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26bf8)" ( (binary_expression "pcVar24 + 0x26bf8" identifier + number_literal) ))))) )) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674)" ( identifier , (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x674" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);" statement_identifier : (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" identifier (argument_list "(iVar2,apiStack_a0[0])" ( identifier , (subscript_expression "apiStack_a0[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "param_3 = piVar19;" (assignment_expression "param_3 = piVar19" identifier = identifier) ;) (expression_statement "FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));" (call_expression "FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164))" identifier (argument_list "(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164))" ( identifier , identifier , identifier , (pointer_expression "*(undefined4 *)(iVar2 + 0x164)" * (cast_expression "(undefined4 *)(iVar2 + 0x164)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x164)" ( (binary_expression "iVar2 + 0x164" identifier + number_literal) )))) ))) ;) (if_statement "if (piVar12 != (int *)0x0) break;" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" identifier = identifier) ;) }))) (expression_statement "param_3 = (int *)0x10;" (assignment_expression "param_3 = (int *)0x10" identifier = (cast_expression "(int *)0x10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);" (call_expression "(**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26bd0))" ( (pointer_expression "**(code **)(pcVar24 + 0x26bd0)" * (pointer_expression "*(code **)(pcVar24 + 0x26bd0)" * (cast_expression "(code **)(pcVar24 + 0x26bd0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26bd0)" ( (binary_expression "pcVar24 + 0x26bd0" identifier + number_literal) ))))) )) (argument_list "(iVar2,piVar12,0x10,0)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar8 = FUN_0001c240(iVar2,unaff_s6);" (assignment_expression "iVar8 = FUN_0001c240(iVar2,unaff_s6)" identifier = (call_expression "FUN_0001c240(iVar2,unaff_s6)" identifier (argument_list "(iVar2,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "piVar12[0x1d] = iVar8;" (assignment_expression "piVar12[0x1d] = iVar8" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }" { (expression_statement "(**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);" (call_expression "(**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d54))" ( (pointer_expression "**(code **)(pcVar24 + 0x26d54)" * (pointer_expression "*(code **)(pcVar24 + 0x26d54)" * (cast_expression "(code **)(pcVar24 + 0x26d54)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d54)" ( (binary_expression "pcVar24 + 0x26d54" identifier + number_literal) ))))) )) (argument_list "(iVar8,piVar11,unaff_s6)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar10 = piVar12[0x3d];" (assignment_expression "uVar10 = piVar12[0x3d]" identifier = (subscript_expression "piVar12[0x3d]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = piVar12[2];" (assignment_expression "uVar9 = piVar12[2]" identifier = (subscript_expression "piVar12[2]" identifier [ number_literal ])) ;) (expression_statement "piVar12[0x1e] = (int)piVar19;" (assignment_expression "piVar12[0x1e] = (int)piVar19" (subscript_expression "piVar12[0x1e]" identifier [ number_literal ]) = (cast_expression "(int)piVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar12[0x1f] = (int)piStack_5d0;" (assignment_expression "piVar12[0x1f] = (int)piStack_5d0" (subscript_expression "piVar12[0x1f]" identifier [ number_literal ]) = (cast_expression "(int)piStack_5d0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x374) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x374) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x374)" * (cast_expression "(undefined4 *)(iVar2 + 0x374)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x374)" ( (binary_expression "iVar2 + 0x374" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar12[0x3d] = uVar10 | 0x10;" (assignment_expression "piVar12[0x3d] = uVar10 | 0x10" (subscript_expression "piVar12[0x3d]" identifier [ number_literal ]) = (binary_expression "uVar10 | 0x10" identifier | number_literal)) ;) (expression_statement "piVar12[2] = uVar9 | 0x1000;" (assignment_expression "piVar12[2] = uVar9 | 0x1000" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = (binary_expression "uVar9 | 0x1000" identifier | number_literal)) ;) (expression_statement "param_3 = piStack_5d0;" (assignment_expression "param_3 = piStack_5d0" identifier = identifier) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0002ce24;" goto statement_identifier ;) })) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184)" identifier = (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + -0x184)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + -0x184)" ( (binary_expression "*(int *)(pcVar24 + 0x268ac) + -0x184" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" * (cast_expression "(int *)(pcVar24 + 0x268ac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar24 + 0x268ac)" ( (binary_expression "pcVar24 + 0x268ac" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);" statement_identifier : (expression_statement "pcVar22 = *(code **)(pcVar24 + 0x26d2c);" (assignment_expression "pcVar22 = *(code **)(pcVar24 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) ;)) (goto_statement "goto LAB_0002c938;" goto statement_identifier ;) (labeled_statement "LAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);" statement_identifier : (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" identifier = (pointer_expression "*(int **)(iVar2 + 0x14c)" * (cast_expression "(int **)(iVar2 + 0x14c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x14c)" ( (binary_expression "iVar2 + 0x14c" identifier + number_literal) ))))) ;)) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" * (cast_expression "(undefined4 *)(iVar2 + 0x130)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x130)" ( (binary_expression "iVar2 + 0x130" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);" statement_identifier : (expression_statement "FUN_0002b068(iVar2,param_3);" (call_expression "FUN_0002b068(iVar2,param_3)" identifier (argument_list "(iVar2,param_3)" ( identifier , identifier ))) ;)) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" * (cast_expression "(ushort *)(iVar2 + 0x3e2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3e2)" ( (binary_expression "iVar2 + 0x3e2" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" identifier (argument_list "(iVar2,piVar12)" ( identifier , identifier ))) ;) (expression_statement "unaff_s2 = piVar16;" (assignment_expression "unaff_s2 = piVar16" identifier = identifier) ;) (if_statement "if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }" if (parenthesized_expression "(piVar16 != (int *)0x0)" ( (binary_expression "piVar16 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }" { (expression_statement "pcVar22 = *(code **)(pcVar24 + 0x26d2c);" (assignment_expression "pcVar22 = *(code **)(pcVar24 + 0x26d2c)" identifier = (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" * (cast_expression "(code **)(pcVar24 + 0x26d2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar24 + 0x26d2c)" ( (binary_expression "pcVar24 + 0x26d2c" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);" statement_identifier : (expression_statement "(*pcVar22)(iVar2,piVar16);" (call_expression "(*pcVar22)(iVar2,piVar16)" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "(iVar2,piVar16)" ( identifier , identifier ))) ;)) (expression_statement "unaff_s2 = piVar16;" (assignment_expression "unaff_s2 = piVar16" identifier = identifier) ;) })) (goto_statement "goto LAB_0002c8bc;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression 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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (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 = (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 (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 ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (binary_expression IDENT == 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 { (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 = (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) }))) })) }))) })) }) (else_clause else (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) ))) ;) }))) }) (else_clause else (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) ))) ;) }))) (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) ;) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * 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 * 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 (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 (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 = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) == (char_literal ' escape_sequence ')) ))) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (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 , 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) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (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 * 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 (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 * (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) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (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 , (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 (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 ])) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (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 (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression (subscript_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (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 (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 , 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_0002c348(int param_1,int *param_2,int *param_3)\n\n{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}" (primitive_type "void") (function_declarator "FUN_0002c348(int param_1,int *param_2,int *param_3)" (identifier "FUN_0002c348") (parameter_list "(int param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  ushort uVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  char *pcVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  uint uVar10;\n  int *piVar11;\n  int *piVar12;\n  int iVar13;\n  int iVar14;\n  int unaff_s0;\n  int *piVar15;\n  int *piVar16;\n  int *unaff_s2;\n  undefined1 *unaff_s3;\n  byte *pbVar17;\n  byte *pbVar18;\n  int *piVar19;\n  int *piVar20;\n  int *unaff_s6;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined *puVar23;\n  int unaff_s8;\n  code *pcVar24;\n  int *piStack_5d0;\n  int iStack_5c4;\n  int *piStack_5b0;\n  undefined4 uStack_5ac;\n  byte bStack_558;\n  byte bStack_557;\n  byte bStack_556;\n  byte bStack_555;\n  undefined4 auStack_554 [31];\n  byte bStack_4d8;\n  byte bStack_4d7;\n  byte bStack_4d6;\n  byte bStack_4d5;\n  undefined1 auStack_4d4 [1024];\n  int iStack_d4;\n  int iStack_d0;\n  int *piStack_cc;\n  int *piStack_c8;\n  undefined1 *puStack_c4;\n  int *apiStack_a0 [2];\n  undefined *puStack_98;\n  byte bStack_8d;\n  int iStack_8c;\n  int iStack_88;\n  undefined *puStack_84;\n  int *piStack_80;\n  code *pcStack_7c;\n  int local_5c;\n  int local_58;\n  int local_54;\n  int local_50;\n  int local_4c;\n  int local_48;\n  int local_44;\n  int local_40;\n  undefined1 auStack_3c [4];\n  undefined1 auStack_38 [4];\n  undefined1 auStack_34 [4];\n  undefined1 auStack_30 [4];\n  undefined1 auStack_2c [4];\n  undefined1 auStack_28 [4];\n  undefined1 auStack_24 [4];\n  undefined1 auStack_20 [4];\n  int local_1c;\n  \n  puVar6 = PTR___stack_chk_guard_000534bc;\n  local_1c = *(int *)PTR___stack_chk_guard_000534bc;\n  iVar8 = param_1;\n  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }\n  pcVar24 = FUN_0002c5dc;\n  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);\n  puVar21 = PTR_png_chunk_error_0005351c;\n  (*(code *)PTR_png_chunk_error_0005351c)();\n  puVar23 = puVar21 + 0x2ea14;\n  puStack_84 = puVar6;\n  piVar16 = *(int **)(puVar21 + 0x26ee0);\n  iStack_8c = *piVar16;\n  puStack_98 = puVar23;\n  iStack_88 = unaff_s0;\n  piStack_80 = unaff_s2;\n  pcStack_7c = pcVar24;\n  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }\n  pcVar24 = *(code **)(puVar23 + -0x7b6c);\n  (*pcVar24)();\n  piVar15 = *(int **)(pcVar24 + 0x26d4c);\n  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);\n  iStack_d4 = *piVar15;\n  piVar11 = unaff_s2;\n  iStack_d0 = unaff_s0;\n  piStack_cc = piVar16;\n  piStack_c8 = unaff_s2;\n  puStack_c4 = unaff_s3;\n  apiStack_a0[0] = param_3;\n  if (piVar19 == (int *)0x0) goto LAB_0002cd34;\n  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }\nLAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }\n  param_3 = (int *)0x10;\n  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);\n  iVar8 = FUN_0001c240(iVar2,unaff_s6);\n  piVar12[0x1d] = iVar8;\n  if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);\nLAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);\n  goto LAB_0002c938;\nLAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);\n  *(undefined4 *)(iVar2 + 0x130) = 0;\nLAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);\n  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n  FUN_00015834(iVar2,piVar12);\n  unaff_s2 = piVar16;\n  if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }\n  goto LAB_0002c8bc;\n}" ({ "{") (declaration "ushort uVar1;" (type_identifier "ushort") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int unaff_s0;" (primitive_type "int") (identifier "unaff_s0") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "int *unaff_s2;" (primitive_type "int") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "undefined1 *unaff_s3;" (type_identifier "undefined1") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "byte *pbVar18;" (type_identifier "byte") (pointer_declarator "*pbVar18" (* "*") (identifier "pbVar18")) (; ";")) (declaration "int *piVar19;" (primitive_type "int") (pointer_declarator "*piVar19" (* "*") (identifier "piVar19")) (; ";")) (declaration "int *piVar20;" (primitive_type "int") (pointer_declarator "*piVar20" (* "*") (identifier "piVar20")) (; ";")) (declaration "int *unaff_s6;" (primitive_type "int") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int unaff_s8;" (primitive_type "int") (identifier "unaff_s8") (; ";")) (declaration "code *pcVar24;" (type_identifier "code") (pointer_declarator "*pcVar24" (* "*") (identifier "pcVar24")) (; ";")) (declaration "int *piStack_5d0;" (primitive_type "int") (pointer_declarator "*piStack_5d0" (* "*") (identifier "piStack_5d0")) (; ";")) (declaration "int iStack_5c4;" (primitive_type "int") (identifier "iStack_5c4") (; ";")) (declaration "int *piStack_5b0;" (primitive_type "int") (pointer_declarator "*piStack_5b0" (* "*") (identifier "piStack_5b0")) (; ";")) (declaration "undefined4 uStack_5ac;" (type_identifier "undefined4") (identifier "uStack_5ac") (; ";")) (declaration "byte bStack_558;" (type_identifier "byte") (identifier "bStack_558") (; ";")) (declaration "byte bStack_557;" (type_identifier "byte") (identifier "bStack_557") (; ";")) (declaration "byte bStack_556;" (type_identifier "byte") (identifier "bStack_556") (; ";")) (declaration "byte bStack_555;" (type_identifier "byte") (identifier "bStack_555") (; ";")) (declaration "undefined4 auStack_554 [31];" (type_identifier "undefined4") (array_declarator "auStack_554 [31]" (identifier "auStack_554") ([ "[") (number_literal "31") (] "]")) (; ";")) (declaration "byte bStack_4d8;" (type_identifier "byte") (identifier "bStack_4d8") (; ";")) (declaration "byte bStack_4d7;" (type_identifier "byte") (identifier "bStack_4d7") (; ";")) (declaration "byte bStack_4d6;" (type_identifier "byte") (identifier "bStack_4d6") (; ";")) (declaration "byte bStack_4d5;" (type_identifier "byte") (identifier "bStack_4d5") (; ";")) (declaration "undefined1 auStack_4d4 [1024];" (type_identifier "undefined1") (array_declarator "auStack_4d4 [1024]" (identifier "auStack_4d4") ([ "[") (number_literal "1024") (] "]")) (; ";")) (declaration "int iStack_d4;" (primitive_type "int") (identifier "iStack_d4") (; ";")) (declaration "int iStack_d0;" (primitive_type "int") (identifier "iStack_d0") (; ";")) (declaration "int *piStack_cc;" (primitive_type "int") (pointer_declarator "*piStack_cc" (* "*") (identifier "piStack_cc")) (; ";")) (declaration "int *piStack_c8;" (primitive_type "int") (pointer_declarator "*piStack_c8" (* "*") (identifier "piStack_c8")) (; ";")) (declaration "undefined1 *puStack_c4;" (type_identifier "undefined1") (pointer_declarator "*puStack_c4" (* "*") (identifier "puStack_c4")) (; ";")) (declaration "int *apiStack_a0 [2];" (primitive_type "int") (pointer_declarator "*apiStack_a0 [2]" (* "*") (array_declarator "apiStack_a0 [2]" (identifier "apiStack_a0") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined *puStack_98;" (type_identifier "undefined") (pointer_declarator "*puStack_98" (* "*") (identifier "puStack_98")) (; ";")) (declaration "byte bStack_8d;" (type_identifier "byte") (identifier "bStack_8d") (; ";")) (declaration "int iStack_8c;" (primitive_type "int") (identifier "iStack_8c") (; ";")) (declaration "int iStack_88;" (primitive_type "int") (identifier "iStack_88") (; ";")) (declaration "undefined *puStack_84;" (type_identifier "undefined") (pointer_declarator "*puStack_84" (* "*") (identifier "puStack_84")) (; ";")) (declaration "int *piStack_80;" (primitive_type "int") (pointer_declarator "*piStack_80" (* "*") (identifier "piStack_80")) (; ";")) (declaration "code *pcStack_7c;" (type_identifier "code") (pointer_declarator "*pcStack_7c" (* "*") (identifier "pcStack_7c")) (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "int local_58;" (primitive_type "int") (identifier "local_58") (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "int local_50;" (primitive_type "int") (identifier "local_50") (; ";")) (declaration "int local_4c;" (primitive_type "int") (identifier "local_4c") (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "int local_44;" (primitive_type "int") (identifier "local_44") (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "undefined1 auStack_3c [4];" (type_identifier "undefined1") (array_declarator "auStack_3c [4]" (identifier "auStack_3c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_38 [4];" (type_identifier "undefined1") (array_declarator "auStack_38 [4]" (identifier "auStack_38") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_34 [4];" (type_identifier "undefined1") (array_declarator "auStack_34 [4]" (identifier "auStack_34") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_30 [4];" (type_identifier "undefined1") (array_declarator "auStack_30 [4]" (identifier "auStack_30") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_2c [4];" (type_identifier "undefined1") (array_declarator "auStack_2c [4]" (identifier "auStack_2c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_28 [4];" (type_identifier "undefined1") (array_declarator "auStack_28 [4]" (identifier "auStack_28") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_24 [4];" (type_identifier "undefined1") (array_declarator "auStack_24 [4]" (identifier "auStack_24") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_20 [4];" (type_identifier "undefined1") (array_declarator "auStack_20 [4]" (identifier "auStack_20") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "puVar6 = PTR___stack_chk_guard_000534bc;" (assignment_expression "puVar6 = PTR___stack_chk_guard_000534bc" (identifier "puVar6") (= "=") (identifier "PTR___stack_chk_guard_000534bc")) (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000534bc;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000534bc" (identifier "local_1c") (= "=") (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 "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" (identifier "iVar8") (= "=") (identifier "param_1")) (; ";")) (if_statement "if ((*(uint *)(param_1 + 0x124) & 1) != 0) {\n    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\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 (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }\n    if (local_1c == *(int *)puVar6) {\n      return;\n    }\n    (*(code *)PTR___stack_chk_fail_00053484)();\n    unaff_s0 = param_1;\n    unaff_s2 = param_2;\n  }" ({ "{") (if_statement "if ((*(uint *)(param_1 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }\n    else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 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 (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }\n    }" ({ "{") (if_statement "if (param_3 == (int *)0x20) {\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }" (if "if") (parenthesized_expression "(param_3 == (int *)0x20)" (( "(") (binary_expression "param_3 == (int *)0x20" (identifier "param_3") (== "==") (cast_expression "(int *)0x20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) () ")")) (compound_statement "{\n        unaff_s3 = auStack_3c;\n        FUN_0002aef8(param_1,unaff_s3);\n        iVar2 = FUN_0002b068(param_1,0);\n        if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "unaff_s3 = auStack_3c;" (assignment_expression "unaff_s3 = auStack_3c" (identifier "unaff_s3") (= "=") (identifier "auStack_3c")) (; ";")) (expression_statement "FUN_0002aef8(param_1,unaff_s3);" (call_expression "FUN_0002aef8(param_1,unaff_s3)" (identifier "FUN_0002aef8") (argument_list "(param_1,unaff_s3)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s3") () ")"))) (; ";")) (expression_statement "iVar2 = FUN_0002b068(param_1,0);" (assignment_expression "iVar2 = FUN_0002b068(param_1,0)" (identifier "iVar2") (= "=") (call_expression "FUN_0002b068(param_1,0)" (identifier "FUN_0002b068") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar8 = FUN_0002acb0(unaff_s3);\n          local_44 = iVar8;\n          iVar2 = FUN_0002acb0(auStack_38);\n          local_40 = iVar2;\n          iVar7 = FUN_0002acb0(auStack_34);\n          local_5c = iVar7;\n          iVar13 = FUN_0002acb0(auStack_30);\n          local_58 = iVar13;\n          iVar14 = FUN_0002acb0(auStack_2c);\n          local_54 = iVar14;\n          iVar3 = FUN_0002acb0(auStack_28);\n          local_50 = iVar3;\n          iVar4 = FUN_0002acb0(auStack_24);\n          local_4c = iVar4;\n          local_48 = FUN_0002acb0(auStack_20);\n          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "iVar8 = FUN_0002acb0(unaff_s3);" (assignment_expression "iVar8 = FUN_0002acb0(unaff_s3)" (identifier "iVar8") (= "=") (call_expression "FUN_0002acb0(unaff_s3)" (identifier "FUN_0002acb0") (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")")))) (; ";")) (expression_statement "local_44 = iVar8;" (assignment_expression "local_44 = iVar8" (identifier "local_44") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar2 = FUN_0002acb0(auStack_38);" (assignment_expression "iVar2 = FUN_0002acb0(auStack_38)" (identifier "iVar2") (= "=") (call_expression "FUN_0002acb0(auStack_38)" (identifier "FUN_0002acb0") (argument_list "(auStack_38)" (( "(") (identifier "auStack_38") () ")")))) (; ";")) (expression_statement "local_40 = iVar2;" (assignment_expression "local_40 = iVar2" (identifier "local_40") (= "=") (identifier "iVar2")) (; ";")) (expression_statement "iVar7 = FUN_0002acb0(auStack_34);" (assignment_expression "iVar7 = FUN_0002acb0(auStack_34)" (identifier "iVar7") (= "=") (call_expression "FUN_0002acb0(auStack_34)" (identifier "FUN_0002acb0") (argument_list "(auStack_34)" (( "(") (identifier "auStack_34") () ")")))) (; ";")) (expression_statement "local_5c = iVar7;" (assignment_expression "local_5c = iVar7" (identifier "local_5c") (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar13 = FUN_0002acb0(auStack_30);" (assignment_expression "iVar13 = FUN_0002acb0(auStack_30)" (identifier "iVar13") (= "=") (call_expression "FUN_0002acb0(auStack_30)" (identifier "FUN_0002acb0") (argument_list "(auStack_30)" (( "(") (identifier "auStack_30") () ")")))) (; ";")) (expression_statement "local_58 = iVar13;" (assignment_expression "local_58 = iVar13" (identifier "local_58") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "iVar14 = FUN_0002acb0(auStack_2c);" (assignment_expression "iVar14 = FUN_0002acb0(auStack_2c)" (identifier "iVar14") (= "=") (call_expression "FUN_0002acb0(auStack_2c)" (identifier "FUN_0002acb0") (argument_list "(auStack_2c)" (( "(") (identifier "auStack_2c") () ")")))) (; ";")) (expression_statement "local_54 = iVar14;" (assignment_expression "local_54 = iVar14" (identifier "local_54") (= "=") (identifier "iVar14")) (; ";")) (expression_statement "iVar3 = FUN_0002acb0(auStack_28);" (assignment_expression "iVar3 = FUN_0002acb0(auStack_28)" (identifier "iVar3") (= "=") (call_expression "FUN_0002acb0(auStack_28)" (identifier "FUN_0002acb0") (argument_list "(auStack_28)" (( "(") (identifier "auStack_28") () ")")))) (; ";")) (expression_statement "local_50 = iVar3;" (assignment_expression "local_50 = iVar3" (identifier "local_50") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar4 = FUN_0002acb0(auStack_24);" (assignment_expression "iVar4 = FUN_0002acb0(auStack_24)" (identifier "iVar4") (= "=") (call_expression "FUN_0002acb0(auStack_24)" (identifier "FUN_0002acb0") (argument_list "(auStack_24)" (( "(") (identifier "auStack_24") () ")")))) (; ";")) (expression_statement "local_4c = iVar4;" (assignment_expression "local_4c = iVar4" (identifier "local_4c") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "local_48 = FUN_0002acb0(auStack_20);" (assignment_expression "local_48 = FUN_0002acb0(auStack_20)" (identifier "local_48") (= "=") (call_expression "FUN_0002acb0(auStack_20)" (identifier "FUN_0002acb0") (argument_list "(auStack_20)" (( "(") (identifier "auStack_20") () ")")))) (; ";")) (if_statement "if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }\n          else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" (if "if") (parenthesized_expression "(((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1))))))" (( "(") (binary_expression "((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))) ||\n             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))" (parenthesized_expression "((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1))))" (( "(") (binary_expression "(((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||\n              ((iVar13 == -1 || (iVar14 == -1)))" (parenthesized_expression "(((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1))" (( "(") (binary_expression "((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)" (parenthesized_expression "((iVar8 == -1) || (iVar2 == -1))" (( "(") (binary_expression "(iVar8 == -1) || (iVar2 == -1)" (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (|| "||") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar13 == -1 || (iVar14 == -1)))" (( "(") (parenthesized_expression "(iVar13 == -1 || (iVar14 == -1))" (( "(") (binary_expression "iVar13 == -1 || (iVar14 == -1)" (binary_expression "iVar13 == -1" (identifier "iVar13") (== "==") (number_literal "-1")) (|| "||") (parenthesized_expression "(iVar14 == -1)" (( "(") (binary_expression "iVar14 == -1" (identifier "iVar14") (== "==") (number_literal "-1")) () ")"))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))" (( "(") (parenthesized_expression "(iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1))))" (( "(") (binary_expression "iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))" (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) (|| "||") (parenthesized_expression "((iVar4 == -1 || (local_48 == -1)))" (( "(") (parenthesized_expression "(iVar4 == -1 || (local_48 == -1))" (( "(") (binary_expression "iVar4 == -1 || (local_48 == -1)" (binary_expression "iVar4 == -1" (identifier "iVar4") (== "==") (number_literal "-1")) (|| "||") (parenthesized_expression "(local_48 == -1)" (( "(") (binary_expression "local_48 == -1" (identifier "local_48") (== "==") (number_literal "-1")) () ")"))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            iVar8 = param_1;\n            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);\n          }" ({ "{") (expression_statement "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" (identifier "iVar8") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c)" (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 + 0x70c)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + 0x70c" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x70c")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" (else "else") (compound_statement "{\n            uVar1 = *(ushort *)(param_1 + 0x3e2);\n            iVar8 = param_1;\n            if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }\n          }" ({ "{") (expression_statement "uVar1 = *(ushort *)(param_1 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(param_1 + 0x3e2)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(param_1 + 0x3e2)" (* "*") (cast_expression "(ushort *)(param_1 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3e2)" (( "(") (binary_expression "param_1 + 0x3e2" (identifier "param_1") (+ "+") (number_literal "0x3e2")) () ")"))))) (; ";")) (expression_statement "iVar8 = param_1;" (assignment_expression "iVar8 = param_1" (identifier "iVar8") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (-1 < (short)uVar1) {\n              if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -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 *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }\n            }" ({ "{") (if_statement "if ((uVar1 & 0x10) == 0) {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }\n              else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -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 *)(param_1 + 0x3e2) = uVar1 | 0x10;\n                param_3 = &local_5c;\n                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);\n                FUN_00015834(param_1,param_2);\n              }" ({ "{") (expression_statement "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;" (assignment_expression "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10" (pointer_expression "*(ushort *)(param_1 + 0x3e2)" (* "*") (cast_expression "(ushort *)(param_1 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3e2)" (( "(") (binary_expression "param_1 + 0x3e2" (identifier "param_1") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "uVar1 | 0x10" (identifier "uVar1") (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "param_3 = &local_5c;" (assignment_expression "param_3 = &local_5c" (identifier "param_3") (= "=") (pointer_expression "&local_5c" (& "&") (identifier "local_5c"))) (; ";")) (expression_statement "FUN_00017e00(param_1,param_1 + 0x398,param_3,1);" (call_expression "FUN_00017e00(param_1,param_1 + 0x398,param_3,1)" (identifier "FUN_00017e00") (argument_list "(param_1,param_1 + 0x398,param_3,1)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_1 + 0x398" (identifier "param_1") (+ "+") (number_literal "0x398")) (, ",") (identifier "param_3") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_00015834(param_1,param_2);" (call_expression "FUN_00015834(param_1,param_2)" (identifier "FUN_00015834") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }" (else "else") (compound_statement "{\n                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;\n                FUN_00015834(param_1,param_2);\n                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);\n              }" ({ "{") (expression_statement "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(param_1 + 0x3e2)" (* "*") (cast_expression "(ushort *)(param_1 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3e2)" (( "(") (binary_expression "param_1 + 0x3e2" (identifier "param_1") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "uVar1 | 0x8000" (identifier "uVar1") (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(param_1,param_2);" (call_expression "FUN_00015834(param_1,param_2)" (identifier "FUN_00015834") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);" (call_expression "(*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18)" (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 + -0x1a18)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_nt_0005301c + -0x1a18" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "-0x1a18")) () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\n      }" (else "else") (compound_statement "{\n        FUN_0002b068(param_1,param_3);\n        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);\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 + 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")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\n    }" (else "else") (compound_statement "{\n      FUN_0002b068(param_1,param_3);\n      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);\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")) () ")"))) (; ";")) (} "}")))) (if_statement "if (local_1c == *(int *)puVar6) {\n      return;\n    }" (if "if") (parenthesized_expression "(local_1c == *(int *)puVar6)" (( "(") (binary_expression "local_1c == *(int *)puVar6" (identifier "local_1c") (== "==") (pointer_expression "*(int *)puVar6" (* "*") (cast_expression "(int *)puVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar6")))) () ")")) (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_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" (identifier "unaff_s2") (= "=") (identifier "param_2")) (; ";")) (} "}"))) (expression_statement "pcVar24 = FUN_0002c5dc;" (assignment_expression "pcVar24 = FUN_0002c5dc" (identifier "pcVar24") (= "=") (identifier "FUN_0002c5dc")) (; ";")) (expression_statement "piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);" (assignment_expression "piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4)" (identifier "piVar11") (= "=") (cast_expression "(int *)(PTR_s_nt_0005301c + 0x6a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_nt_0005301c + 0x6a4)" (( "(") (binary_expression "PTR_s_nt_0005301c + 0x6a4" (identifier "PTR_s_nt_0005301c") (+ "+") (number_literal "0x6a4")) () ")")))) (; ";")) (expression_statement "puVar21 = PTR_png_chunk_error_0005351c;" (assignment_expression "puVar21 = PTR_png_chunk_error_0005351c" (identifier "puVar21") (= "=") (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 "puVar23 = puVar21 + 0x2ea14;" (assignment_expression "puVar23 = puVar21 + 0x2ea14" (identifier "puVar23") (= "=") (binary_expression "puVar21 + 0x2ea14" (identifier "puVar21") (+ "+") (number_literal "0x2ea14"))) (; ";")) (expression_statement "puStack_84 = puVar6;" (assignment_expression "puStack_84 = puVar6" (identifier "puStack_84") (= "=") (identifier "puVar6")) (; ";")) (expression_statement "piVar16 = *(int **)(puVar21 + 0x26ee0);" (assignment_expression "piVar16 = *(int **)(puVar21 + 0x26ee0)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar21 + 0x26ee0)" (* "*") (cast_expression "(int **)(puVar21 + 0x26ee0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x26ee0)" (( "(") (binary_expression "puVar21 + 0x26ee0" (identifier "puVar21") (+ "+") (number_literal "0x26ee0")) () ")"))))) (; ";")) (expression_statement "iStack_8c = *piVar16;" (assignment_expression "iStack_8c = *piVar16" (identifier "iStack_8c") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "puStack_98 = puVar23;" (assignment_expression "puStack_98 = puVar23" (identifier "puStack_98") (= "=") (identifier "puVar23")) (; ";")) (expression_statement "iStack_88 = unaff_s0;" (assignment_expression "iStack_88 = unaff_s0" (identifier "iStack_88") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "piStack_80 = unaff_s2;" (assignment_expression "piStack_80 = unaff_s2" (identifier "piStack_80") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "pcStack_7c = pcVar24;" (assignment_expression "pcStack_7c = pcVar24" (identifier "pcStack_7c") (= "=") (identifier "pcVar24")) (; ";")) (if_statement "if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }\n  else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "((*(uint *)(iVar8 + 0x124) & 1) == 0)" (( "(") (binary_expression "(*(uint *)(iVar8 + 0x124) & 1) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x124) & 1)" (( "(") (binary_expression "*(uint *)(iVar8 + 0x124) & 1" (pointer_expression "*(uint *)(iVar8 + 0x124)" (* "*") (cast_expression "(uint *)(iVar8 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x124)" (( "(") (binary_expression "iVar8 + 0x124" (identifier "iVar8") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);\n    (**(code **)(puVar21 + 0x26f40))();\n    iVar2 = iVar8;\n  }" ({ "{") (expression_statement "piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);" (assignment_expression "piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4)" (identifier "piVar12") (= "=") (cast_expression "(int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar21 + 0x26a40) + 0x6a4)" (( "(") (binary_expression "*(int *)(puVar21 + 0x26a40) + 0x6a4" (pointer_expression "*(int *)(puVar21 + 0x26a40)" (* "*") (cast_expression "(int *)(puVar21 + 0x26a40)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x26a40)" (( "(") (binary_expression "puVar21 + 0x26a40" (identifier "puVar21") (+ "+") (number_literal "0x26a40")) () ")")))) (+ "+") (number_literal "0x6a4")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar21 + 0x26f40))();" (call_expression "(**(code **)(puVar21 + 0x26f40))()" (parenthesized_expression "(**(code **)(puVar21 + 0x26f40))" (( "(") (pointer_expression "**(code **)(puVar21 + 0x26f40)" (* "*") (pointer_expression "*(code **)(puVar21 + 0x26f40)" (* "*") (cast_expression "(code **)(puVar21 + 0x26f40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x26f40)" (( "(") (binary_expression "puVar21 + 0x26f40" (identifier "puVar21") (+ "+") (number_literal "0x26f40")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" (identifier "iVar2") (= "=") (identifier "iVar8")) (; ";")) (} "}")) (else_clause "else {\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" (else "else") (compound_statement "{\n    iVar2 = iVar8;\n    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }\n    unaff_s0 = iVar8;\n    unaff_s2 = piVar11;\n    puVar23 = puStack_98;\n    if (iStack_8c == *piVar16) {\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" (identifier "iVar2") (= "=") (identifier "iVar8")) (; ";")) (if_statement "if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }\n    else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" (if "if") (parenthesized_expression "((*(uint *)(iVar8 + 0x124) & 6) == 0)" (( "(") (binary_expression "(*(uint *)(iVar8 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(iVar8 + 0x124) & 6)" (( "(") (binary_expression "*(uint *)(iVar8 + 0x124) & 6" (pointer_expression "*(uint *)(iVar8 + 0x124)" (* "*") (cast_expression "(uint *)(iVar8 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x124)" (( "(") (binary_expression "iVar8 + 0x124" (identifier "iVar8") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }\n    }" ({ "{") (if_statement "if (param_3 == (int *)0x1) {\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }\n      else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" (if "if") (parenthesized_expression "(param_3 == (int *)0x1)" (( "(") (binary_expression "param_3 == (int *)0x1" (identifier "param_3") (== "==") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n        FUN_0002aef8();\n        piVar12 = (int *)0x0;\n        iVar7 = FUN_0002b068();\n        if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" (identifier "FUN_0002aef8") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar12 = (int *)0x0;" (assignment_expression "piVar12 = (int *)0x0" (identifier "piVar12") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar7 = FUN_0002b068();" (assignment_expression "iVar7 = FUN_0002b068()" (identifier "iVar7") (= "=") (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar1 = *(ushort *)(iVar8 + 0x3e2);\n          if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }\n        }" ({ "{") (expression_statement "uVar1 = *(ushort *)(iVar8 + 0x3e2);" (assignment_expression "uVar1 = *(ushort *)(iVar8 + 0x3e2)" (identifier "uVar1") (= "=") (pointer_expression "*(ushort *)(iVar8 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar8 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3e2)" (( "(") (binary_expression "iVar8 + 0x3e2" (identifier "iVar8") (+ "+") (number_literal "0x3e2")) () ")"))))) (; ";")) (if_statement "if (-1 < (short)uVar1) {\n            if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -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              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }\n          }" ({ "{") (if_statement "if ((uVar1 & 4) == 0) {\n              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }\n            else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -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              param_3 = (int *)(uint)bStack_8d;\n              FUN_00018198(iVar8,iVar8 + 0x398);\n              iVar2 = iVar8;\n              piVar12 = piVar11;\n              FUN_00015834();\n            }" ({ "{") (expression_statement "param_3 = (int *)(uint)bStack_8d;" (assignment_expression "param_3 = (int *)(uint)bStack_8d" (identifier "param_3") (= "=") (cast_expression "(int *)(uint)bStack_8d" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)bStack_8d" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_8d")))) (; ";")) (expression_statement "FUN_00018198(iVar8,iVar8 + 0x398);" (call_expression "FUN_00018198(iVar8,iVar8 + 0x398)" (identifier "FUN_00018198") (argument_list "(iVar8,iVar8 + 0x398)" (( "(") (identifier "iVar8") (, ",") (binary_expression "iVar8 + 0x398" (identifier "iVar8") (+ "+") (number_literal "0x398")) () ")"))) (; ";")) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" (identifier "iVar2") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "piVar12 = piVar11;" (assignment_expression "piVar12 = piVar11" (identifier "piVar12") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "FUN_00015834();" (call_expression "FUN_00015834()" (identifier "FUN_00015834") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" (else "else") (compound_statement "{\n              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;\n              FUN_00015834(iVar8,piVar11);\n              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);\n              iVar2 = iVar8;\n              (**(code **)(puStack_98 + -0x7b54))();\n            }" ({ "{") (expression_statement "*(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;" (assignment_expression "*(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000" (pointer_expression "*(ushort *)(iVar8 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar8 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x3e2)" (( "(") (binary_expression "iVar8 + 0x3e2" (identifier "iVar8") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "uVar1 | 0x8000" (identifier "uVar1") (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(iVar8,piVar11);" (call_expression "FUN_00015834(iVar8,piVar11)" (identifier "FUN_00015834") (argument_list "(iVar8,piVar11)" (( "(") (identifier "iVar8") (, ",") (identifier "piVar11") () ")"))) (; ";")) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" (identifier "piVar12") (= "=") (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x71c)" (( "(") (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x71c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_98 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_98 + -0x7fd4)" (( "(") (binary_expression "puStack_98 + -0x7fd4" (identifier "puStack_98") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x71c")) () ")")))) (; ";")) (expression_statement "iVar2 = iVar8;" (assignment_expression "iVar2 = iVar8" (identifier "iVar2") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" (( "(") (pointer_expression "**(code **)(puStack_98 + -0x7b54)" (* "*") (pointer_expression "*(code **)(puStack_98 + -0x7b54)" (* "*") (cast_expression "(code **)(puStack_98 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_98 + -0x7b54)" (( "(") (binary_expression "puStack_98 + -0x7b54" (identifier "puStack_98") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" (else "else") (compound_statement "{\n        FUN_0002b068();\n        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);\n        (**(code **)(puStack_98 + -0x7b54))();\n      }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" (identifier "piVar12") (= "=") (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x69c)" (( "(") (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x69c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_98 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_98 + -0x7fd4)" (( "(") (binary_expression "puStack_98 + -0x7fd4" (identifier "puStack_98") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x69c")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" (( "(") (pointer_expression "**(code **)(puStack_98 + -0x7b54)" (* "*") (pointer_expression "*(code **)(puStack_98 + -0x7b54)" (* "*") (cast_expression "(code **)(puStack_98 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_98 + -0x7b54)" (( "(") (binary_expression "puStack_98 + -0x7b54" (identifier "puStack_98") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" (else "else") (compound_statement "{\n      FUN_0002b068();\n      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);\n      (**(code **)(puStack_98 + -0x7b54))();\n    }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);" (assignment_expression "piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" (identifier "piVar12") (= "=") (cast_expression "(int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puStack_98 + -0x7fd4) + 0x68c)" (( "(") (binary_expression "*(int *)(puStack_98 + -0x7fd4) + 0x68c" (pointer_expression "*(int *)(puStack_98 + -0x7fd4)" (* "*") (cast_expression "(int *)(puStack_98 + -0x7fd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puStack_98 + -0x7fd4)" (( "(") (binary_expression "puStack_98 + -0x7fd4" (identifier "puStack_98") (+ "+") (number_literal "-0x7fd4")) () ")")))) (+ "+") (number_literal "0x68c")) () ")")))) (; ";")) (expression_statement "(**(code **)(puStack_98 + -0x7b54))();" (call_expression "(**(code **)(puStack_98 + -0x7b54))()" (parenthesized_expression "(**(code **)(puStack_98 + -0x7b54))" (( "(") (pointer_expression "**(code **)(puStack_98 + -0x7b54)" (* "*") (pointer_expression "*(code **)(puStack_98 + -0x7b54)" (* "*") (cast_expression "(code **)(puStack_98 + -0x7b54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puStack_98 + -0x7b54)" (( "(") (binary_expression "puStack_98 + -0x7b54" (identifier "puStack_98") (+ "+") (number_literal "-0x7b54")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "unaff_s0 = iVar8;" (assignment_expression "unaff_s0 = iVar8" (identifier "unaff_s0") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" (identifier "unaff_s2") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "puVar23 = puStack_98;" (assignment_expression "puVar23 = puStack_98" (identifier "puVar23") (= "=") (identifier "puStack_98")) (; ";")) (if_statement "if (iStack_8c == *piVar16) {\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_8c == *piVar16)" (( "(") (binary_expression "iStack_8c == *piVar16" (identifier "iStack_8c") (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar24 = *(code **)(puVar23 + -0x7b6c);" (assignment_expression "pcVar24 = *(code **)(puVar23 + -0x7b6c)" (identifier "pcVar24") (= "=") (pointer_expression "*(code **)(puVar23 + -0x7b6c)" (* "*") (cast_expression "(code **)(puVar23 + -0x7b6c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar23 + -0x7b6c)" (( "(") (binary_expression "puVar23 + -0x7b6c" (identifier "puVar23") (+ "+") (number_literal "-0x7b6c")) () ")"))))) (; ";")) (expression_statement "(*pcVar24)();" (call_expression "(*pcVar24)()" (parenthesized_expression "(*pcVar24)" (( "(") (pointer_expression "*pcVar24" (* "*") (identifier "pcVar24")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar15 = *(int **)(pcVar24 + 0x26d4c);" (assignment_expression "piVar15 = *(int **)(pcVar24 + 0x26d4c)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(pcVar24 + 0x26d4c)" (* "*") (cast_expression "(int **)(pcVar24 + 0x26d4c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26d4c)" (( "(") (binary_expression "pcVar24 + 0x26d4c" (identifier "pcVar24") (+ "+") (number_literal "0x26d4c")) () ")"))))) (; ";")) (expression_statement "piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);" (assignment_expression "piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1)" (identifier "piVar19") (= "=") (cast_expression "(int *)(*(uint *)(iVar2 + 0x124) & 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(iVar2 + 0x124) & 1)" (( "(") (binary_expression "*(uint *)(iVar2 + 0x124) & 1" (pointer_expression "*(uint *)(iVar2 + 0x124)" (* "*") (cast_expression "(uint *)(iVar2 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x124)" (( "(") (binary_expression "iVar2 + 0x124" (identifier "iVar2") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iStack_d4 = *piVar15;" (assignment_expression "iStack_d4 = *piVar15" (identifier "iStack_d4") (= "=") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) (; ";")) (expression_statement "piVar11 = unaff_s2;" (assignment_expression "piVar11 = unaff_s2" (identifier "piVar11") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "iStack_d0 = unaff_s0;" (assignment_expression "iStack_d0 = unaff_s0" (identifier "iStack_d0") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "piStack_cc = piVar16;" (assignment_expression "piStack_cc = piVar16" (identifier "piStack_cc") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "piStack_c8 = unaff_s2;" (assignment_expression "piStack_c8 = unaff_s2" (identifier "piStack_c8") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "puStack_c4 = unaff_s3;" (assignment_expression "puStack_c4 = unaff_s3" (identifier "puStack_c4") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "apiStack_a0[0] = param_3;" (assignment_expression "apiStack_a0[0] = param_3" (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_3")) (; ";")) (if_statement "if (piVar19 == (int *)0x0) goto LAB_0002cd34;" (if "if") (parenthesized_expression "(piVar19 == (int *)0x0)" (( "(") (binary_expression "piVar19 == (int *)0x0" (identifier "piVar19") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002cd34;" (goto "goto") (statement_identifier "LAB_0002cd34") (; ";"))) (if_statement "if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }\n  else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" (if "if") (parenthesized_expression "((*(uint *)(iVar2 + 0x124) & 6) == 0)" (( "(") (binary_expression "(*(uint *)(iVar2 + 0x124) & 6) == 0" (parenthesized_expression "(*(uint *)(iVar2 + 0x124) & 6)" (( "(") (binary_expression "*(uint *)(iVar2 + 0x124) & 6" (pointer_expression "*(uint *)(iVar2 + 0x124)" (* "*") (cast_expression "(uint *)(iVar2 + 0x124)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x124)" (( "(") (binary_expression "iVar2 + 0x124" (identifier "iVar2") (+ "+") (number_literal "0x124")) () ")")))) (& "&") (number_literal "6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);\n    unaff_s2 = piVar11;\n  }" ({ "{") (if_statement "if ((int *)0xd < param_3) {\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" (if "if") (parenthesized_expression "((int *)0xd < param_3)" (( "(") (binary_expression "(int *)0xd < param_3" (cast_expression "(int *)0xd" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xd")) (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }\n      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }\n      piVar16 = (int *)0x51;\n      if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }\n      piVar11 = &uStack_5ac;\n      param_3 = piVar16;\n      FUN_0002aef8();\n      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);\n      if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }\n    }" ({ "{") (if_statement "if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {\n        FUN_0002b068();\n        goto LAB_0002c8bc;\n      }" (if "if") (parenthesized_expression "((short)*(ushort *)(iVar2 + 0x3e2) < 0)" (( "(") (binary_expression "(short)*(ushort *)(iVar2 + 0x3e2) < 0" (cast_expression "(short)*(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (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 *)(iVar2 + 0x3e2) & 4) != 0) {\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar2 + 0x3e2) & 4) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar2 + 0x3e2) & 4) != 0" (parenthesized_expression "(*(ushort *)(iVar2 + 0x3e2) & 4)" (( "(") (binary_expression "*(ushort *)(iVar2 + 0x3e2) & 4" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);\nLAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);\n        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n        FUN_00015834(iVar2,piVar12);\n        goto LAB_0002c934;\n      }" ({ "{") (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c)" (identifier "piVar16") (= "=") (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x71c)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x71c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x71c")) () ")")))) (; ";")) (labeled_statement "LAB_0002c900:\n        FUN_0002b068(iVar2,apiStack_a0[0]);" (statement_identifier "LAB_0002c900") (: ":") (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" (identifier "FUN_0002b068") (argument_list "(iVar2,apiStack_a0[0])" (( "(") (identifier "iVar2") (, ",") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";"))) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" (identifier "FUN_00015834") (argument_list "(iVar2,piVar12)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar12") () ")"))) (; ";")) (goto_statement "goto LAB_0002c934;" (goto "goto") (statement_identifier "LAB_0002c934") (; ";")) (} "}"))) (expression_statement "piVar16 = (int *)0x51;" (assignment_expression "piVar16 = (int *)0x51" (identifier "piVar16") (= "=") (cast_expression "(int *)0x51" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x51"))) (; ";")) (if_statement "if (param_3 < (int *)0x51) {\n        piVar16 = param_3;\n      }" (if "if") (parenthesized_expression "(param_3 < (int *)0x51)" (( "(") (binary_expression "param_3 < (int *)0x51" (identifier "param_3") (< "<") (cast_expression "(int *)0x51" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x51"))) () ")")) (compound_statement "{\n        piVar16 = param_3;\n      }" ({ "{") (expression_statement "piVar16 = param_3;" (assignment_expression "piVar16 = param_3" (identifier "piVar16") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "piVar11 = &uStack_5ac;" (assignment_expression "piVar11 = &uStack_5ac" (identifier "piVar11") (= "=") (pointer_expression "&uStack_5ac" (& "&") (identifier "uStack_5ac"))) (; ";")) (expression_statement "param_3 = piVar16;" (assignment_expression "param_3 = piVar16" (identifier "param_3") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "FUN_0002aef8();" (call_expression "FUN_0002aef8()" (identifier "FUN_0002aef8") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);" (assignment_expression "apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16)" (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(int *)((int)apiStack_a0[0] - (int)piVar16)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)apiStack_a0[0] - (int)piVar16)" (( "(") (binary_expression "(int)apiStack_a0[0] - (int)piVar16" (cast_expression "(int)apiStack_a0[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]"))) (- "-") (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16"))) () ")")))) (; ";")) (if_statement "if ((int *)0xa < apiStack_a0[0]) {\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" (if "if") (parenthesized_expression "((int *)0xa < apiStack_a0[0])" (( "(") (binary_expression "(int *)0xa < apiStack_a0[0]" (cast_expression "(int *)0xa" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xa")) (< "<") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\n        pcVar5 = (char *)((int)&uStack_5ac + 1);\n        if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }\n        goto LAB_0002c900;\n      }" ({ "{") (expression_statement "pcVar5 = (char *)((int)&uStack_5ac + 1);" (assignment_expression "pcVar5 = (char *)((int)&uStack_5ac + 1)" (identifier "pcVar5") (= "=") (cast_expression "(char *)((int)&uStack_5ac + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_5ac + 1)" (( "(") (binary_expression "(int)&uStack_5ac + 1" (cast_expression "(int)&uStack_5ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_5ac" (& "&") (identifier "uStack_5ac"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (uStack_5ac._0_1_ == '\0') {\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }\n        else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" (if "if") (parenthesized_expression "(uStack_5ac._0_1_ == '\0')" (( "(") (binary_expression "uStack_5ac._0_1_ == '\0'" (field_expression "uStack_5ac._0_1_" (identifier "uStack_5ac") (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);\n        }" ({ "{") (labeled_statement "LAB_0002c974:\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);" (statement_identifier "LAB_0002c974") (: ":") (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748)" (identifier "piVar16") (= "=") (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x748)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x748)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x748" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x748")) () ")")))) (; ";"))) (} "}")) (else_clause "else {\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" (else "else") (compound_statement "{\n          do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);\n          unaff_s6 = (int *)((int)piVar20 + 2);\nLAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }\n          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);\n        }" ({ "{") (do_statement "do {\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          } while (piVar16 != piVar19);" (do "do") (compound_statement "{\n            piVar20 = piVar19;\n            unaff_s6 = (int *)((int)piVar20 + 1);\n            piVar19 = piVar20;\n            if (*pcVar5 == '\0') goto LAB_0002c86c;\n            piVar19 = (int *)((int)piVar20 + 1);\n            if (piVar19 == (int *)0x50) goto LAB_0002c974;\n            pcVar5 = pcVar5 + 1;\n          }" ({ "{") (expression_statement "piVar20 = piVar19;" (assignment_expression "piVar20 = piVar19" (identifier "piVar20") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "unaff_s6 = (int *)((int)piVar20 + 1);" (assignment_expression "unaff_s6 = (int *)((int)piVar20 + 1)" (identifier "unaff_s6") (= "=") (cast_expression "(int *)((int)piVar20 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 1)" (( "(") (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "piVar19 = piVar20;" (assignment_expression "piVar19 = piVar20" (identifier "piVar19") (= "=") (identifier "piVar20")) (; ";")) (if_statement "if (*pcVar5 == '\0') goto LAB_0002c86c;" (if "if") (parenthesized_expression "(*pcVar5 == '\0')" (( "(") (binary_expression "*pcVar5 == '\0'" (pointer_expression "*pcVar5" (* "*") (identifier "pcVar5")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_0002c86c;" (goto "goto") (statement_identifier "LAB_0002c86c") (; ";"))) (expression_statement "piVar19 = (int *)((int)piVar20 + 1);" (assignment_expression "piVar19 = (int *)((int)piVar20 + 1)" (identifier "piVar19") (= "=") (cast_expression "(int *)((int)piVar20 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 1)" (( "(") (binary_expression "(int)piVar20 + 1" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (piVar19 == (int *)0x50) goto LAB_0002c974;" (if "if") (parenthesized_expression "(piVar19 == (int *)0x50)" (( "(") (binary_expression "piVar19 == (int *)0x50" (identifier "piVar19") (== "==") (cast_expression "(int *)0x50" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x50"))) () ")")) (goto_statement "goto LAB_0002c974;" (goto "goto") (statement_identifier "LAB_0002c974") (; ";"))) (expression_statement "pcVar5 = pcVar5 + 1;" (assignment_expression "pcVar5 = pcVar5 + 1" (identifier "pcVar5") (= "=") (binary_expression "pcVar5 + 1" (identifier "pcVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar16 != piVar19)" (( "(") (binary_expression "piVar16 != piVar19" (identifier "piVar16") (!= "!=") (identifier "piVar19")) () ")")) (; ";")) (expression_statement "unaff_s6 = (int *)((int)piVar20 + 2);" (assignment_expression "unaff_s6 = (int *)((int)piVar20 + 2)" (identifier "unaff_s6") (= "=") (cast_expression "(int *)((int)piVar20 + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar20 + 2)" (( "(") (binary_expression "(int)piVar20 + 2" (cast_expression "(int)piVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar20")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (labeled_statement "LAB_0002c86c:\n          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" (statement_identifier "LAB_0002c86c") (: ":") (if_statement "if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" (if "if") (parenthesized_expression "((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0'))" (( "(") (binary_expression "(unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')" (parenthesized_expression "(unaff_s6 < piVar16)" (( "(") (binary_expression "unaff_s6 < piVar16" (identifier "unaff_s6") (< "<") (identifier "piVar16")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')" (( "(") (binary_expression "*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0'" (pointer_expression "*(char *)((int)&uStack_5ac + (int)unaff_s6)" (* "*") (cast_expression "(char *)((int)&uStack_5ac + (int)unaff_s6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&uStack_5ac + (int)unaff_s6)" (( "(") (binary_expression "(int)&uStack_5ac + (int)unaff_s6" (cast_expression "(int)&uStack_5ac" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_5ac" (& "&") (identifier "uStack_5ac"))) (+ "+") (cast_expression "(int)unaff_s6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s6"))) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            iVar8 = FUN_0002a9cc(iVar2,0x69434350);\n            if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }\n            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);\n            puVar6 = (undefined *)((int)piVar19 + 2);\n            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));\n            piStack_5b0 = (int *)0x84;\n            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);\n            *(int **)(iVar2 + 0x138) = piVar19;\n            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }\nLAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);\n            *(undefined4 *)(iVar2 + 0x130) = 0;\n            param_3 = apiStack_a0[0];\n            goto LAB_0002ca50;\n          }" ({ "{") (expression_statement "iVar8 = FUN_0002a9cc(iVar2,0x69434350);" (assignment_expression "iVar8 = FUN_0002a9cc(iVar2,0x69434350)" (identifier "iVar8") (= "=") (call_expression "FUN_0002a9cc(iVar2,0x69434350)" (identifier "FUN_0002a9cc") (argument_list "(iVar2,0x69434350)" (( "(") (identifier "iVar2") (, ",") (number_literal "0x69434350") () ")")))) (; ";")) (if_statement "if (iVar8 != 0) {\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              piVar16 = *(int **)(iVar2 + 0x14c);\n              param_3 = apiStack_a0[0];\n              goto LAB_0002ca50;\n            }" ({ "{") (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(iVar2 + 0x14c)" (* "*") (cast_expression "(int **)(iVar2 + 0x14c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x14c)" (( "(") (binary_expression "iVar2 + 0x14c" (identifier "iVar2") (+ "+") (number_literal "0x14c")) () ")"))))) (; ";")) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" (identifier "param_3") (= "=") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto LAB_0002ca50;" (goto "goto") (statement_identifier "LAB_0002ca50") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);" (call_expression "(**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26c24))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26c24)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26c24)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26c24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26c24)" (( "(") (binary_expression "pcVar24 + 0x26c24" (identifier "pcVar24") (+ "+") (number_literal "0x26c24")) () ")"))))) () ")")) (argument_list "(&bStack_558,0,0x84)" (( "(") (pointer_expression "&bStack_558" (& "&") (identifier "bStack_558")) (, ",") (number_literal "0") (, ",") (number_literal "0x84") () ")"))) (; ";")) (expression_statement "puVar6 = (undefined *)((int)piVar19 + 2);" (assignment_expression "puVar6 = (undefined *)((int)piVar19 + 2)" (identifier "puVar6") (= "=") (cast_expression "(undefined *)((int)piVar19 + 2)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar19 + 2)" (( "(") (binary_expression "(int)piVar19 + 2" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));" (assignment_expression "piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19))" (identifier "piVar19") (= "=") (cast_expression "(int *)((int)piVar16 + (-2 - (int)piVar19))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar16 + (-2 - (int)piVar19))" (( "(") (binary_expression "(int)piVar16 + (-2 - (int)piVar19)" (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16")) (+ "+") (parenthesized_expression "(-2 - (int)piVar19)" (( "(") (binary_expression "-2 - (int)piVar19" (number_literal "-2") (- "-") (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19"))) () ")"))) () ")")))) (; ";")) (expression_statement "piStack_5b0 = (int *)0x84;" (assignment_expression "piStack_5b0 = (int *)0x84" (identifier "piStack_5b0") (= "=") (cast_expression "(int *)0x84" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x84"))) (; ";")) (expression_statement "*(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);" (assignment_expression "*(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6)" (pointer_expression "*(undefined **)(iVar2 + 0x134)" (* "*") (cast_expression "(undefined **)(iVar2 + 0x134)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x134)" (( "(") (binary_expression "iVar2 + 0x134" (identifier "iVar2") (+ "+") (number_literal "0x134")) () ")")))) (= "=") (cast_expression "(undefined *)((int)piVar11 + (int)puVar6)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar11 + (int)puVar6)" (( "(") (binary_expression "(int)piVar11 + (int)puVar6" (cast_expression "(int)piVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar11")) (+ "+") (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6"))) () ")")))) (; ";")) (expression_statement "*(int **)(iVar2 + 0x138) = piVar19;" (assignment_expression "*(int **)(iVar2 + 0x138) = piVar19" (pointer_expression "*(int **)(iVar2 + 0x138)" (* "*") (cast_expression "(int **)(iVar2 + 0x138)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x138)" (( "(") (binary_expression "iVar2 + 0x138" (identifier "iVar2") (+ "+") (number_literal "0x138")) () ")")))) (= "=") (identifier "piVar19")) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }\n            else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" (( "(") (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" (* "*") (cast_expression "(int *)(iVar2 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar2 + 0x1cc)" (* "*") (cast_expression "(int *)(iVar2 + 0x1cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1cc)" (( "(") (binary_expression "iVar2 + 0x1cc" (identifier "iVar2") (+ "+") (number_literal "0x1cc")) () ")"))))) () ")")) (compound_statement "{\n              iVar8 = *(int *)(pcVar24 + 0x26a74);\n              *(byte **)(iVar2 + 0x140) = &bStack_558;\n              *(undefined4 *)(iVar2 + 0x144) = 0;\n              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n              if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }\n            }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar24 + 0x26a74);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x26a74)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar24 + 0x26a74)" (* "*") (cast_expression "(int *)(pcVar24 + 0x26a74)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x26a74)" (( "(") (binary_expression "pcVar24 + 0x26a74" (identifier "pcVar24") (+ "+") (number_literal "0x26a74")) () ")"))))) (; ";")) (expression_statement "*(byte **)(iVar2 + 0x140) = &bStack_558;" (assignment_expression "*(byte **)(iVar2 + 0x140) = &bStack_558" (pointer_expression "*(byte **)(iVar2 + 0x140)" (* "*") (cast_expression "(byte **)(iVar2 + 0x140)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x140)" (( "(") (binary_expression "iVar2 + 0x140" (identifier "iVar2") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (pointer_expression "&bStack_558" (& "&") (identifier "bStack_558"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x144)" (( "(") (binary_expression "iVar2 + 0x144" (identifier "iVar2") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);" (call_expression "FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" (identifier "FUN_0002b83c") (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" (( "(") (identifier "iVar2") (, ",") (identifier "auStack_4d4") (, ",") (identifier "apiStack_a0") (, ",") (pointer_expression "&piStack_5b0" (& "&") (identifier "piStack_5b0")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (piStack_5b0 == (int *)0x0) {\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }" (if "if") (parenthesized_expression "(piStack_5b0 == (int *)0x0)" (( "(") (binary_expression "piStack_5b0 == (int *)0x0" (identifier "piStack_5b0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                iStack_5c4 = iVar2 + 0x398;\n                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);\n                param_3 = piVar11;\n                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);\n                if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }\n                *(undefined4 *)(iVar2 + 0x130) = 0;\n                FUN_0002b068(iVar2,apiStack_a0[0]);\n                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;\n                FUN_00015834(iVar2,piVar12);\n                unaff_s2 = piVar11;\n                goto LAB_0002c8bc;\n              }" ({ "{") (expression_statement "iStack_5c4 = iVar2 + 0x398;" (assignment_expression "iStack_5c4 = iVar2 + 0x398" (identifier "iStack_5c4") (= "=") (binary_expression "iVar2 + 0x398" (identifier "iVar2") (+ "+") (number_literal "0x398"))) (; ";")) (expression_statement "piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);" (assignment_expression "piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" (identifier "piStack_5d0") (= "=") (cast_expression "(int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100)" (( "(") (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555 + (uint)bStack_556 * 0x100" (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +\n                                      (uint)bStack_555" (binary_expression "(uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000" (binary_expression "(uint)bStack_558 * 0x1000000" (cast_expression "(uint)bStack_558" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_558")) (* "*") (number_literal "0x1000000")) (+ "+") (binary_expression "(uint)bStack_557 * 0x10000" (cast_expression "(uint)bStack_557" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_557")) (* "*") (number_literal "0x10000"))) (+ "+") (cast_expression "(uint)bStack_555" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_555"))) (+ "+") (binary_expression "(uint)bStack_556 * 0x100" (cast_expression "(uint)bStack_556" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_556")) (* "*") (number_literal "0x100"))) () ")")))) (; ";")) (expression_statement "param_3 = piVar11;" (assignment_expression "param_3 = piVar11" (identifier "param_3") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);" (assignment_expression "iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0)" (identifier "iVar7") (= "=") (call_expression "FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0)" (identifier "FUN_000158a4") (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0)" (( "(") (identifier "iVar2") (, ",") (identifier "iStack_5c4") (, ",") (identifier "piVar11") (, ",") (identifier "piStack_5d0") () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" (if "if") (parenthesized_expression "((iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) &&\n                   (param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)" (( "(") (comma_expression "param_3 = piVar11,\n                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0" (assignment_expression "param_3 = piVar11" (identifier "param_3") (= "=") (identifier "piVar11")) (, ",") (comma_expression "iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0" (assignment_expression "iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" (identifier "iVar7") (= "=") (call_expression "FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" (identifier "FUN_0001596c") (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,\n                                        *(undefined1 *)(iVar2 + 0x1ff))" (( "(") (identifier "iVar2") (, ",") (identifier "iStack_5c4") (, ",") (identifier "piVar11") (, ",") (identifier "piStack_5d0") (, ",") (pointer_expression "&bStack_558" (& "&") (identifier "bStack_558")) (, ",") (pointer_expression "*(undefined1 *)(iVar2 + 0x1ff)" (* "*") (cast_expression "(undefined1 *)(iVar2 + 0x1ff)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1ff)" (( "(") (binary_expression "iVar2 + 0x1ff" (identifier "iVar2") (+ "+") (number_literal "0x1ff")) () ")")))) () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n                  param_3 = (int *)0x2;\n                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);\n                  if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }\n                  piVar16 = piVar19;\n                  pbVar17 = &bStack_558;\n                  do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);\n                  *piVar16 = *(int *)pbVar18;\n                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;\n                  piVar16 = (int *)(iVar7 * 0xc);\n                  piStack_5b0 = piVar16;\n                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }\n                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;\n                  param_3 = piVar11;\n                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);\n                  if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }\n                }" ({ "{") (expression_statement "param_3 = (int *)0x2;" (assignment_expression "param_3 = (int *)0x2" (identifier "param_3") (= "=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) (; ";")) (expression_statement "piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);" (assignment_expression "piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2)" (identifier "piVar19") (= "=") (cast_expression "(int *)FUN_0002ab84(iVar2,piStack_5d0,2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002ab84(iVar2,piStack_5d0,2)" (identifier "FUN_0002ab84") (argument_list "(iVar2,piStack_5d0,2)" (( "(") (identifier "iVar2") (, ",") (identifier "piStack_5d0") (, ",") (number_literal "2") () ")"))))) (; ";")) (if_statement "if (piVar19 == (int *)0x0) {\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }" (if "if") (parenthesized_expression "(piVar19 == (int *)0x0)" (( "(") (binary_expression "piVar19 == (int *)0x0" (identifier "piVar19") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + -0x184);\n                    goto LAB_0002c900;\n                  }" ({ "{") (expression_statement "iVar8 = *(int *)(pcVar24 + 0x268ac);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x268ac)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16 = (int *)(iVar8 + -0x184);" (assignment_expression "piVar16 = (int *)(iVar8 + -0x184)" (identifier "piVar16") (= "=") (cast_expression "(int *)(iVar8 + -0x184)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x184)" (( "(") (binary_expression "iVar8 + -0x184" (identifier "iVar8") (+ "+") (number_literal "-0x184")) () ")")))) (; ";")) (goto_statement "goto LAB_0002c900;" (goto "goto") (statement_identifier "LAB_0002c900") (; ";")) (} "}"))) (expression_statement "piVar16 = piVar19;" (assignment_expression "piVar16 = piVar19" (identifier "piVar16") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "pbVar17 = &bStack_558;" (assignment_expression "pbVar17 = &bStack_558" (identifier "pbVar17") (= "=") (pointer_expression "&bStack_558" (& "&") (identifier "bStack_558"))) (; ";")) (do_statement "do {\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  } while (pbVar18 != &bStack_4d8);" (do "do") (compound_statement "{\n                    pbVar18 = pbVar17 + 0x10;\n                    iVar14 = *(int *)(pbVar17 + 4);\n                    iVar13 = *(int *)(pbVar17 + 8);\n                    iVar7 = *(int *)(pbVar17 + 0xc);\n                    *piVar16 = *(int *)pbVar17;\n                    piVar16[1] = iVar14;\n                    piVar16[2] = iVar13;\n                    piVar16[3] = iVar7;\n                    piVar16 = piVar16 + 4;\n                    pbVar17 = pbVar18;\n                  }" ({ "{") (expression_statement "pbVar18 = pbVar17 + 0x10;" (assignment_expression "pbVar18 = pbVar17 + 0x10" (identifier "pbVar18") (= "=") (binary_expression "pbVar17 + 0x10" (identifier "pbVar17") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "iVar14 = *(int *)(pbVar17 + 4);" (assignment_expression "iVar14 = *(int *)(pbVar17 + 4)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(pbVar17 + 4)" (* "*") (cast_expression "(int *)(pbVar17 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 4)" (( "(") (binary_expression "pbVar17 + 4" (identifier "pbVar17") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(pbVar17 + 8);" (assignment_expression "iVar13 = *(int *)(pbVar17 + 8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pbVar17 + 8)" (* "*") (cast_expression "(int *)(pbVar17 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 8)" (( "(") (binary_expression "pbVar17 + 8" (identifier "pbVar17") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(pbVar17 + 0xc);" (assignment_expression "iVar7 = *(int *)(pbVar17 + 0xc)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(pbVar17 + 0xc)" (* "*") (cast_expression "(int *)(pbVar17 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar17 + 0xc)" (( "(") (binary_expression "pbVar17 + 0xc" (identifier "pbVar17") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*piVar16 = *(int *)pbVar17;" (assignment_expression "*piVar16 = *(int *)pbVar17" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (= "=") (pointer_expression "*(int *)pbVar17" (* "*") (cast_expression "(int *)pbVar17" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar17")))) (; ";")) (expression_statement "piVar16[1] = iVar14;" (assignment_expression "piVar16[1] = iVar14" (subscript_expression "piVar16[1]" (identifier "piVar16") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "piVar16[2] = iVar13;" (assignment_expression "piVar16[2] = iVar13" (subscript_expression "piVar16[2]" (identifier "piVar16") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "piVar16[3] = iVar7;" (assignment_expression "piVar16[3] = iVar7" (subscript_expression "piVar16[3]" (identifier "piVar16") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piVar16 = piVar16 + 4;" (assignment_expression "piVar16 = piVar16 + 4" (identifier "piVar16") (= "=") (binary_expression "piVar16 + 4" (identifier "piVar16") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pbVar17 = pbVar18;" (assignment_expression "pbVar17 = pbVar18" (identifier "pbVar17") (= "=") (identifier "pbVar18")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar18 != &bStack_4d8)" (( "(") (binary_expression "pbVar18 != &bStack_4d8" (identifier "pbVar18") (!= "!=") (pointer_expression "&bStack_4d8" (& "&") (identifier "bStack_4d8"))) () ")")) (; ";")) (expression_statement "*piVar16 = *(int *)pbVar18;" (assignment_expression "*piVar16 = *(int *)pbVar18" (pointer_expression "*piVar16" (* "*") (identifier "piVar16")) (= "=") (pointer_expression "*(int *)pbVar18" (* "*") (cast_expression "(int *)pbVar18" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar18")))) (; ";")) (expression_statement "iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;" (assignment_expression "iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100" (identifier "iVar7") (= "=") (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100" (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +\n                          (uint)bStack_4d5" (binary_expression "(uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000" (binary_expression "(uint)bStack_4d8 * 0x1000000" (cast_expression "(uint)bStack_4d8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_4d8")) (* "*") (number_literal "0x1000000")) (+ "+") (binary_expression "(uint)bStack_4d7 * 0x10000" (cast_expression "(uint)bStack_4d7" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_4d7")) (* "*") (number_literal "0x10000"))) (+ "+") (cast_expression "(uint)bStack_4d5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_4d5"))) (+ "+") (binary_expression "(uint)bStack_4d6 * 0x100" (cast_expression "(uint)bStack_4d6" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_4d6")) (* "*") (number_literal "0x100")))) (; ";")) (expression_statement "piVar16 = (int *)(iVar7 * 0xc);" (assignment_expression "piVar16 = (int *)(iVar7 * 0xc)" (identifier "piVar16") (= "=") (cast_expression "(int *)(iVar7 * 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 * 0xc)" (( "(") (binary_expression "iVar7 * 0xc" (identifier "iVar7") (* "*") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "piStack_5b0 = piVar16;" (assignment_expression "piStack_5b0 = piVar16" (identifier "piStack_5b0") (= "=") (identifier "piVar16")) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }\n                  else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" (( "(") (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" (* "*") (cast_expression "(int *)(iVar2 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar2 + 0x1cc)" (* "*") (cast_expression "(int *)(iVar2 + 0x1cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1cc)" (( "(") (binary_expression "iVar2 + 0x1cc" (identifier "iVar2") (+ "+") (number_literal "0x1cc")) () ")"))))) () ")")) (compound_statement "{\n                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;\n                    *(undefined4 *)(iVar2 + 0x144) = 0;\n                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);\n                  }" ({ "{") (expression_statement "*(int **)(iVar2 + 0x140) = piVar19 + 0x21;" (assignment_expression "*(int **)(iVar2 + 0x140) = piVar19 + 0x21" (pointer_expression "*(int **)(iVar2 + 0x140)" (* "*") (cast_expression "(int **)(iVar2 + 0x140)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x140)" (( "(") (binary_expression "iVar2 + 0x140" (identifier "iVar2") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (binary_expression "piVar19 + 0x21" (identifier "piVar19") (+ "+") (number_literal "0x21"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x144)" (( "(") (binary_expression "iVar2 + 0x144" (identifier "iVar2") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);" (call_expression "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" (parenthesized_expression "(*(code *)(iVar8 + -0x47c4))" (( "(") (pointer_expression "*(code *)(iVar8 + -0x47c4)" (* "*") (cast_expression "(code *)(iVar8 + -0x47c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x47c4)" (( "(") (binary_expression "iVar8 + -0x47c4" (identifier "iVar8") (+ "+") (number_literal "-0x47c4")) () ")")))) () ")")) (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0)" (( "(") (identifier "iVar2") (, ",") (identifier "auStack_4d4") (, ",") (identifier "apiStack_a0") (, ",") (pointer_expression "&piStack_5b0" (& "&") (identifier "piStack_5b0")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" (else "else") (compound_statement "{\n                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                  }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" (* "*") (cast_expression "(int *)(iVar2 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14c)" (( "(") (binary_expression "iVar2 + 0x14c" (identifier "iVar2") (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x660"))) (; ";")) (} "}")))) (if_statement "if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;" (if "if") (parenthesized_expression "(piStack_5b0 != (int *)0x0)" (( "(") (binary_expression "piStack_5b0 != (int *)0x0" (identifier "piStack_5b0") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002ca44;" (goto "goto") (statement_identifier "LAB_0002ca44") (; ";"))) (expression_statement "param_3 = piVar11;" (assignment_expression "param_3 = piVar11" (identifier "param_3") (= "=") (identifier "piVar11")) (; ";")) (expression_statement "iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);" (assignment_expression "iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" (identifier "iVar13") (= "=") (call_expression "FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" (identifier "FUN_00015dd8") (argument_list "(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19)" (( "(") (identifier "iVar2") (, ",") (identifier "iStack_5c4") (, ",") (identifier "piVar11") (, ",") (identifier "piStack_5d0") (, ",") (identifier "piVar19") () ")")))) (; ";")) (if_statement "if (iVar13 != 0) {\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;\n                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }\n                    param_3 = apiStack_a0[0];\n                    if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }\n                    piVar16 = piStack_5b0;\n                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;\n                    iVar8 = *(int *)(pcVar24 + 0x268ac);\n                    *(undefined4 *)(iVar2 + 0x130) = 0;\n                    piVar16 = (int *)(iVar8 + 0x674);\n                    goto LAB_0002c900;\n                  }" ({ "{") (expression_statement "piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;" (assignment_expression "piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21" (identifier "piStack_5b0") (= "=") (binary_expression "piStack_5d0 + iVar7 * -3 + -0x21" (binary_expression "piStack_5d0 + iVar7 * -3" (identifier "piStack_5d0") (+ "+") (binary_expression "iVar7 * -3" (identifier "iVar7") (* "*") (number_literal "-3"))) (+ "+") (number_literal "-0x21"))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }\n                    else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc))" (( "(") (binary_expression "*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)" (pointer_expression "*(int *)(iVar2 + 0x130)" (* "*") (cast_expression "(int *)(iVar2 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (pointer_expression "*(int *)(iVar2 + 0x1cc)" (* "*") (cast_expression "(int *)(iVar2 + 0x1cc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x1cc)" (( "(") (binary_expression "iVar2 + 0x1cc" (identifier "iVar2") (+ "+") (number_literal "0x1cc")) () ")"))))) () ")")) (compound_statement "{\n                      *(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));\n                      *(undefined4 *)(iVar2 + 0x144) = 0;\n                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);\n                    }" ({ "{") (expression_statement "*(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));" (assignment_expression "*(undefined **)(iVar2 + 0x140) =\n                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21))" (pointer_expression "*(undefined **)(iVar2 + 0x140)" (* "*") (cast_expression "(undefined **)(iVar2 + 0x140)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x140)" (( "(") (binary_expression "iVar2 + 0x140" (identifier "iVar2") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (cast_expression "(undefined *)((int)piVar19 + (int)(piVar16 + 0x21))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar19 + (int)(piVar16 + 0x21))" (( "(") (binary_expression "(int)piVar19 + (int)(piVar16 + 0x21)" (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19")) (+ "+") (cast_expression "(int)(piVar16 + 0x21)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar16 + 0x21)" (( "(") (binary_expression "piVar16 + 0x21" (identifier "piVar16") (+ "+") (number_literal "0x21")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x144) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x144) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x144)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x144)" (( "(") (binary_expression "iVar2 + 0x144" (identifier "iVar2") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);" (call_expression "(*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1)" (parenthesized_expression "(*(code *)(iVar8 + -0x47c4))" (( "(") (pointer_expression "*(code *)(iVar8 + -0x47c4)" (* "*") (cast_expression "(code *)(iVar8 + -0x47c4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + -0x47c4)" (( "(") (binary_expression "iVar8 + -0x47c4" (identifier "iVar8") (+ "+") (number_literal "-0x47c4")) () ")")))) () ")")) (argument_list "(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1)" (( "(") (identifier "iVar2") (, ",") (identifier "auStack_4d4") (, ",") (identifier "apiStack_a0") (, ",") (pointer_expression "&piStack_5b0" (& "&") (identifier "piStack_5b0")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" (else "else") (compound_statement "{\n                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n                    }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" (* "*") (cast_expression "(int *)(iVar2 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14c)" (( "(") (binary_expression "iVar2 + 0x14c" (identifier "iVar2") (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x660"))) (; ";")) (} "}")))) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" (identifier "param_3") (= "=") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (apiStack_a0[0] == (int *)0x0) {\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" (if "if") (parenthesized_expression "(apiStack_a0[0] == (int *)0x0)" (( "(") (binary_expression "apiStack_a0[0] == (int *)0x0" (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;\n                      goto LAB_0002ce38;\n                    }" ({ "{") (if_statement "if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;" (if "if") (parenthesized_expression "(piStack_5b0 == (int *)0x0)" (( "(") (binary_expression "piStack_5b0 == (int *)0x0" (identifier "piStack_5b0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (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 "piVar16 = piStack_5b0;" (assignment_expression "piVar16 = piStack_5b0" (identifier "piVar16") (= "=") (identifier "piStack_5b0")) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x128) << 0xb < 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x128) << 0xb < 0" (binary_expression "*(int *)(iVar2 + 0x128) << 0xb" (pointer_expression "*(int *)(iVar2 + 0x128)" (* "*") (cast_expression "(int *)(iVar2 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x128)" (( "(") (binary_expression "iVar2 + 0x128" (identifier "iVar2") (+ "+") (number_literal "0x128")) () ")")))) (<< "<<") (number_literal "0xb")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002cd44;" (goto "goto") (statement_identifier "LAB_0002cd44") (; ";"))) (expression_statement "iVar8 = *(int *)(pcVar24 + 0x268ac);" (assignment_expression "iVar8 = *(int *)(pcVar24 + 0x268ac)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar16 = (int *)(iVar8 + 0x674);" (assignment_expression "piVar16 = (int *)(iVar8 + 0x674)" (identifier "piVar16") (= "=") (cast_expression "(int *)(iVar8 + 0x674)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + 0x674)" (( "(") (binary_expression "iVar8 + 0x674" (identifier "iVar8") (+ "+") (number_literal "0x674")) () ")")))) (; ";")) (goto_statement "goto LAB_0002c900;" (goto "goto") (statement_identifier "LAB_0002c900") (; ";")) (} "}"))) (} "}"))) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" (identifier "FUN_0002b068") (argument_list "(iVar2,apiStack_a0[0])" (( "(") (identifier "iVar2") (, ",") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" (identifier "FUN_00015834") (argument_list "(iVar2,piVar12)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar12") () ")"))) (; ";")) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" (identifier "unaff_s2") (= "=") (identifier "piVar11")) (; ";")) (goto_statement "goto LAB_0002c8bc;" (goto "goto") (statement_identifier "LAB_0002c8bc") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" (else "else") (compound_statement "{\n              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;\n            }" ({ "{") (expression_statement "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;" (assignment_expression "*(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(iVar2 + 0x14c)" (* "*") (cast_expression "(int *)(iVar2 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x14c)" (( "(") (binary_expression "iVar2 + 0x14c" (identifier "iVar2") (+ "+") (number_literal "0x14c")) () ")")))) (= "=") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x660" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x660"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002ca44:\n            piVar16 = *(int **)(iVar2 + 0x14c);" (statement_identifier "LAB_0002ca44") (: ":") (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(iVar2 + 0x14c)" (* "*") (cast_expression "(int **)(iVar2 + 0x14c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x14c)" (( "(") (binary_expression "iVar2 + 0x14c" (identifier "iVar2") (+ "+") (number_literal "0x14c")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_3 = apiStack_a0[0];" (assignment_expression "param_3 = apiStack_a0[0]" (identifier "param_3") (= "=") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]"))) (; ";")) (goto_statement "goto LAB_0002ca50;" (goto "goto") (statement_identifier "LAB_0002ca50") (; ";")) (} "}")))) (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730)" (identifier "piVar16") (= "=") (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + 0x730)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + 0x730)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x730" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (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 **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);" (call_expression "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d2c))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26d2c)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26d2c)" (( "(") (binary_expression "pcVar24 + 0x26d2c" (identifier "pcVar24") (+ "+") (number_literal "0x26d2c")) () ")"))))) () ")")) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c)" (( "(") (identifier "iVar2") (, ",") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x237c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x237c")) () ")"))) (; ";")) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" (identifier "unaff_s2") (= "=") (identifier "piVar11")) (; ";")) (} "}")) (else_clause "else {\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" (else "else") (compound_statement "{\n    FUN_0002b068();\n    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);\n  }" ({ "{") (expression_statement "FUN_0002b068();" (call_expression "FUN_0002b068()" (identifier "FUN_0002b068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);" (call_expression "(**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d2c))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26d2c)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26d2c)" (( "(") (binary_expression "pcVar24 + 0x26d2c" (identifier "pcVar24") (+ "+") (number_literal "0x26d2c")) () ")"))))) () ")")) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c)" (( "(") (identifier "iVar2") (, ",") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x68c" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x68c")) () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0002c8bc:\n  while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" (statement_identifier "LAB_0002c8bc") (: ":") (while_statement "while( true ) {\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    if (iStack_d4 == *piVar15) {\n      return;\n    }\n    (**(code **)(pcVar24 + 0x26d14))();\n    piVar16 = piVar12;\n    piVar11 = unaff_s2;\n    unaff_s8 = iVar2;\nLAB_0002cd34:\n    iVar2 = unaff_s8;\n    piVar12 = piVar16;\n    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();\nLAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;\n    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);\nLAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);\n    param_3 = piVar19;\n    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));\n    if (piVar12 != (int *)0x0) break;\nLAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;\n    unaff_s2 = piVar11;\n  }" ({ "{") (if_statement "if (iStack_d4 == *piVar15) {\n      return;\n    }" (if "if") (parenthesized_expression "(iStack_d4 == *piVar15)" (( "(") (binary_expression "iStack_d4 == *piVar15" (identifier "iStack_d4") (== "==") (pointer_expression "*piVar15" (* "*") (identifier "piVar15"))) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(**(code **)(pcVar24 + 0x26d14))();" (call_expression "(**(code **)(pcVar24 + 0x26d14))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d14))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26d14)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26d14)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26d14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26d14)" (( "(") (binary_expression "pcVar24 + 0x26d14" (identifier "pcVar24") (+ "+") (number_literal "0x26d14")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar16 = piVar12;" (assignment_expression "piVar16 = piVar12" (identifier "piVar16") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piVar11 = unaff_s2;" (assignment_expression "piVar11 = unaff_s2" (identifier "piVar11") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "unaff_s8 = iVar2;" (assignment_expression "unaff_s8 = iVar2" (identifier "unaff_s8") (= "=") (identifier "iVar2")) (; ";")) (labeled_statement "LAB_0002cd34:\n    iVar2 = unaff_s8;" (statement_identifier "LAB_0002cd34") (: ":") (expression_statement "iVar2 = unaff_s8;" (assignment_expression "iVar2 = unaff_s8" (identifier "iVar2") (= "=") (identifier "unaff_s8")) (; ";"))) (expression_statement "piVar12 = piVar16;" (assignment_expression "piVar12 = piVar16" (identifier "piVar12") (= "=") (identifier "piVar16")) (; ";")) (expression_statement "piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();" (assignment_expression "piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))()" (identifier "piVar16") (= "=") (cast_expression "(int *)(**(code **)(pcVar24 + 0x26dac))()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(pcVar24 + 0x26dac))()" (parenthesized_expression "(**(code **)(pcVar24 + 0x26dac))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26dac)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26dac)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26dac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26dac)" (( "(") (binary_expression "pcVar24 + 0x26dac" (identifier "pcVar24") (+ "+") (number_literal "0x26dac")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_0002cd44:\n    if (piVar16 != (int *)0x0) goto LAB_0002ce38;" (statement_identifier "LAB_0002cd44") (: ":") (if_statement "if (piVar16 != (int *)0x0) goto LAB_0002ce38;" (if "if") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002ce38;" (goto "goto") (statement_identifier "LAB_0002ce38") (; ";")))) (expression_statement "(**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);" (call_expression "(**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26bf8))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26bf8)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26bf8)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26bf8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26bf8)" (( "(") (binary_expression "pcVar24 + 0x26bf8" (identifier "pcVar24") (+ "+") (number_literal "0x26bf8")) () ")"))))) () ")")) (argument_list "(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674)" (( "(") (identifier "iVar2") (, ",") (binary_expression "*(int *)(pcVar24 + 0x268ac) + 0x674" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "0x674")) () ")"))) (; ";")) (labeled_statement "LAB_0002cd68:\n    FUN_0002b068(iVar2,apiStack_a0[0]);" (statement_identifier "LAB_0002cd68") (: ":") (expression_statement "FUN_0002b068(iVar2,apiStack_a0[0]);" (call_expression "FUN_0002b068(iVar2,apiStack_a0[0])" (identifier "FUN_0002b068") (argument_list "(iVar2,apiStack_a0[0])" (( "(") (identifier "iVar2") (, ",") (subscript_expression "apiStack_a0[0]" (identifier "apiStack_a0") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";"))) (expression_statement "param_3 = piVar19;" (assignment_expression "param_3 = piVar19" (identifier "param_3") (= "=") (identifier "piVar19")) (; ";")) (expression_statement "FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));" (call_expression "FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164))" (identifier "FUN_0001839c") (argument_list "(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164))" (( "(") (identifier "iVar2") (, ",") (identifier "iStack_5c4") (, ",") (identifier "piVar19") (, ",") (pointer_expression "*(undefined4 *)(iVar2 + 0x164)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x164)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x164)" (( "(") (binary_expression "iVar2 + 0x164" (identifier "iVar2") (+ "+") (number_literal "0x164")) () ")")))) () ")"))) (; ";")) (if_statement "if (piVar12 != (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar12 != (int *)0x0)" (( "(") (binary_expression "piVar12 != (int *)0x0" (identifier "piVar12") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0002ce24:\n    *(undefined4 *)(iVar2 + 0x130) = 0;" (statement_identifier "LAB_0002ce24") (: ":") (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "unaff_s2 = piVar11;" (assignment_expression "unaff_s2 = piVar11" (identifier "unaff_s2") (= "=") (identifier "piVar11")) (; ";")) (} "}")))) (expression_statement "param_3 = (int *)0x10;" (assignment_expression "param_3 = (int *)0x10" (identifier "param_3") (= "=") (cast_expression "(int *)0x10" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x10"))) (; ";")) (expression_statement "(**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);" (call_expression "(**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26bd0))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26bd0)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26bd0)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26bd0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26bd0)" (( "(") (binary_expression "pcVar24 + 0x26bd0" (identifier "pcVar24") (+ "+") (number_literal "0x26bd0")) () ")"))))) () ")")) (argument_list "(iVar2,piVar12,0x10,0)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar12") (, ",") (number_literal "0x10") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar8 = FUN_0001c240(iVar2,unaff_s6);" (assignment_expression "iVar8 = FUN_0001c240(iVar2,unaff_s6)" (identifier "iVar8") (= "=") (call_expression "FUN_0001c240(iVar2,unaff_s6)" (identifier "FUN_0001c240") (argument_list "(iVar2,unaff_s6)" (( "(") (identifier "iVar2") (, ",") (identifier "unaff_s6") () ")")))) (; ";")) (expression_statement "piVar12[0x1d] = iVar8;" (assignment_expression "piVar12[0x1d] = iVar8" (subscript_expression "piVar12[0x1d]" (identifier "piVar12") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (if_statement "if (iVar8 != 0) {\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);\n    uVar10 = piVar12[0x3d];\n    uVar9 = piVar12[2];\n    piVar12[0x1e] = (int)piVar19;\n    piVar12[0x1f] = (int)piStack_5d0;\n    *(undefined4 *)(iVar2 + 0x374) = 0;\n    piVar12[0x3d] = uVar10 | 0x10;\n    piVar12[2] = uVar9 | 0x1000;\n    param_3 = piStack_5d0;\n    FUN_00015834(iVar2,piVar12);\n    goto LAB_0002ce24;\n  }" ({ "{") (expression_statement "(**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);" (call_expression "(**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6)" (parenthesized_expression "(**(code **)(pcVar24 + 0x26d54))" (( "(") (pointer_expression "**(code **)(pcVar24 + 0x26d54)" (* "*") (pointer_expression "*(code **)(pcVar24 + 0x26d54)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26d54)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26d54)" (( "(") (binary_expression "pcVar24 + 0x26d54" (identifier "pcVar24") (+ "+") (number_literal "0x26d54")) () ")"))))) () ")")) (argument_list "(iVar8,piVar11,unaff_s6)" (( "(") (identifier "iVar8") (, ",") (identifier "piVar11") (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "uVar10 = piVar12[0x3d];" (assignment_expression "uVar10 = piVar12[0x3d]" (identifier "uVar10") (= "=") (subscript_expression "piVar12[0x3d]" (identifier "piVar12") ([ "[") (number_literal "0x3d") (] "]"))) (; ";")) (expression_statement "uVar9 = piVar12[2];" (assignment_expression "uVar9 = piVar12[2]" (identifier "uVar9") (= "=") (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar12[0x1e] = (int)piVar19;" (assignment_expression "piVar12[0x1e] = (int)piVar19" (subscript_expression "piVar12[0x1e]" (identifier "piVar12") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (cast_expression "(int)piVar19" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar19"))) (; ";")) (expression_statement "piVar12[0x1f] = (int)piStack_5d0;" (assignment_expression "piVar12[0x1f] = (int)piStack_5d0" (subscript_expression "piVar12[0x1f]" (identifier "piVar12") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (cast_expression "(int)piStack_5d0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_5d0"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x374) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x374) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x374)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x374)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x374)" (( "(") (binary_expression "iVar2 + 0x374" (identifier "iVar2") (+ "+") (number_literal "0x374")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar12[0x3d] = uVar10 | 0x10;" (assignment_expression "piVar12[0x3d] = uVar10 | 0x10" (subscript_expression "piVar12[0x3d]" (identifier "piVar12") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (binary_expression "uVar10 | 0x10" (identifier "uVar10") (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "piVar12[2] = uVar9 | 0x1000;" (assignment_expression "piVar12[2] = uVar9 | 0x1000" (subscript_expression "piVar12[2]" (identifier "piVar12") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar9 | 0x1000" (identifier "uVar9") (| "|") (number_literal "0x1000"))) (; ";")) (expression_statement "param_3 = piStack_5d0;" (assignment_expression "param_3 = piStack_5d0" (identifier "param_3") (= "=") (identifier "piStack_5d0")) (; ";")) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" (identifier "FUN_00015834") (argument_list "(iVar2,piVar12)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar12") () ")"))) (; ";")) (goto_statement "goto LAB_0002ce24;" (goto "goto") (statement_identifier "LAB_0002ce24") (; ";")) (} "}"))) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" (identifier "FUN_00015834") (argument_list "(iVar2,piVar12)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar12") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" (identifier "FUN_00015834") (argument_list "(iVar2,piVar12)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar12") () ")"))) (; ";")) (expression_statement "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);" (assignment_expression "piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184)" (identifier "piVar16") (= "=") (cast_expression "(int *)(*(int *)(pcVar24 + 0x268ac) + -0x184)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar24 + 0x268ac) + -0x184)" (( "(") (binary_expression "*(int *)(pcVar24 + 0x268ac) + -0x184" (pointer_expression "*(int *)(pcVar24 + 0x268ac)" (* "*") (cast_expression "(int *)(pcVar24 + 0x268ac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar24 + 0x268ac)" (( "(") (binary_expression "pcVar24 + 0x268ac" (identifier "pcVar24") (+ "+") (number_literal "0x268ac")) () ")")))) (+ "+") (number_literal "-0x184")) () ")")))) (; ";")) (labeled_statement "LAB_0002c934:\n  pcVar22 = *(code **)(pcVar24 + 0x26d2c);" (statement_identifier "LAB_0002c934") (: ":") (expression_statement "pcVar22 = *(code **)(pcVar24 + 0x26d2c);" (assignment_expression "pcVar22 = *(code **)(pcVar24 + 0x26d2c)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26d2c)" (( "(") (binary_expression "pcVar24 + 0x26d2c" (identifier "pcVar24") (+ "+") (number_literal "0x26d2c")) () ")"))))) (; ";"))) (goto_statement "goto LAB_0002c938;" (goto "goto") (statement_identifier "LAB_0002c938") (; ";")) (labeled_statement "LAB_0002ce38:\n  piVar16 = *(int **)(iVar2 + 0x14c);" (statement_identifier "LAB_0002ce38") (: ":") (expression_statement "piVar16 = *(int **)(iVar2 + 0x14c);" (assignment_expression "piVar16 = *(int **)(iVar2 + 0x14c)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(iVar2 + 0x14c)" (* "*") (cast_expression "(int **)(iVar2 + 0x14c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x14c)" (( "(") (binary_expression "iVar2 + 0x14c" (identifier "iVar2") (+ "+") (number_literal "0x14c")) () ")"))))) (; ";"))) (expression_statement "*(undefined4 *)(iVar2 + 0x130) = 0;" (assignment_expression "*(undefined4 *)(iVar2 + 0x130) = 0" (pointer_expression "*(undefined4 *)(iVar2 + 0x130)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x130)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x130)" (( "(") (binary_expression "iVar2 + 0x130" (identifier "iVar2") (+ "+") (number_literal "0x130")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002ca50:\n  FUN_0002b068(iVar2,param_3);" (statement_identifier "LAB_0002ca50") (: ":") (expression_statement "FUN_0002b068(iVar2,param_3);" (call_expression "FUN_0002b068(iVar2,param_3)" (identifier "FUN_0002b068") (argument_list "(iVar2,param_3)" (( "(") (identifier "iVar2") (, ",") (identifier "param_3") () ")"))) (; ";"))) (expression_statement "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;" (assignment_expression "*(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar2 + 0x3e2) | 0x8000" (pointer_expression "*(ushort *)(iVar2 + 0x3e2)" (* "*") (cast_expression "(ushort *)(iVar2 + 0x3e2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3e2)" (( "(") (binary_expression "iVar2 + 0x3e2" (identifier "iVar2") (+ "+") (number_literal "0x3e2")) () ")")))) (| "|") (number_literal "0x8000"))) (; ";")) (expression_statement "FUN_00015834(iVar2,piVar12);" (call_expression "FUN_00015834(iVar2,piVar12)" (identifier "FUN_00015834") (argument_list "(iVar2,piVar12)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar12") () ")"))) (; ";")) (expression_statement "unaff_s2 = piVar16;" (assignment_expression "unaff_s2 = piVar16" (identifier "unaff_s2") (= "=") (identifier "piVar16")) (; ";")) (if_statement "if (piVar16 != (int *)0x0) {\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }" (if "if") (parenthesized_expression "(piVar16 != (int *)0x0)" (( "(") (binary_expression "piVar16 != (int *)0x0" (identifier "piVar16") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pcVar22 = *(code **)(pcVar24 + 0x26d2c);\nLAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);\n    unaff_s2 = piVar16;\n  }" ({ "{") (expression_statement "pcVar22 = *(code **)(pcVar24 + 0x26d2c);" (assignment_expression "pcVar22 = *(code **)(pcVar24 + 0x26d2c)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(pcVar24 + 0x26d2c)" (* "*") (cast_expression "(code **)(pcVar24 + 0x26d2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar24 + 0x26d2c)" (( "(") (binary_expression "pcVar24 + 0x26d2c" (identifier "pcVar24") (+ "+") (number_literal "0x26d2c")) () ")"))))) (; ";")) (labeled_statement "LAB_0002c938:\n    (*pcVar22)(iVar2,piVar16);" (statement_identifier "LAB_0002c938") (: ":") (expression_statement "(*pcVar22)(iVar2,piVar16);" (call_expression "(*pcVar22)(iVar2,piVar16)" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "(iVar2,piVar16)" (( "(") (identifier "iVar2") (, ",") (identifier "piVar16") () ")"))) (; ";"))) (expression_statement "unaff_s2 = piVar16;" (assignment_expression "unaff_s2 = piVar16" (identifier "unaff_s2") (= "=") (identifier "piVar16")) (; ";")) (} "}"))) (goto_statement "goto LAB_0002c8bc;" (goto "goto") (statement_identifier "LAB_0002c8bc") (; ";")) (} "}")))

void function_1(type_1 png_ptr,type_2 info_ptr,type_3 var_1)

{
  type_4 var_15;
  type_3 *ppVar2;
  type_5 *puVar3;
  int var_4;
  type_6 var_7;
  type_6 var_8;
  type_6 var_9;
  type_6 var_10;
  type_6 var_11;
  type_6 var_12;
  type_6 var_13;
  char *var_30;
  int var_45;
  type_7 *var_47;
  type_8 var_52;
  type_9 var_54;
  type_9 var_53;
  type_1 png_ptr_00;
  type_1 ppVar18;
  type_3 var_35;
  type_10 buf_00;
  type_2 ppVar20;
  type_2 var_50;
  type_3 var_34;
  type_2 ppVar22;
  type_3 pVar23;
  int var_19;
  type_1 unaff_s0;
  int *piVar25;
  type_2 var_31;
  type_2 unaff_s2;
  type_1 unaff_s3;
  type_6 *var_42;
  type_6 *var_43;
  type_2 var_27;
  type_11 *read_buffer;
  type_2 var_32;
  type_5 *var_20;
  type_12 *var_26;
  type_5 *var_25;
  type_12 *var_28;
  type_1 unaff_s8;
  type_12 *pcVar31;
  type_13 *in_stack_fffffa24;
  type_2 ppStack_5d0;
  type_14 ppStack_5c4;
  type_7 *var_37;
  type_15 apStack_5ac [3];
  int var_48;
  type_1 ppStack_d0;
  type_2 ppStack_cc;
  type_2 ppStack_c8;
  type_1 ppStack_c4;
  type_2 appStack_a0 [2];
  type_5 *var_23;
  type_16 bStack_8d;
  type_3 var_24;
  type_1 ppStack_88;
  type_5 *puStack_84;
  type_2 ppStack_80;
  type_12 *pcStack_7c;
  type_17 var_16;
  type_18 var_6 [32];
  
  puVar3 = PTR___stack_chk_guard_000534bc;
  var_19 = *(int *)PTR___stack_chk_guard_000534bc;
  png_ptr_00 = png_ptr;
  if ((png_ptr->mode & 1) != 0) {
    if ((png_ptr->mode & 6) == 0) {
      if (var_1 == 0x20) {
        unaff_s3 = (type_1)var_6;
        var_2(png_ptr,(type_19)unaff_s3,0x20);
        buf_00 = (type_10)0x0;
        var_4 = var_3(png_ptr,0);
        if (var_4 == 0) {
          var_7 = var_5(unaff_s3,buf_00);
          var_16.whitex = var_7;
          var_8 = var_5((type_1)(var_6 + 4),buf_00);
          var_16.whitey = var_8;
          var_9 = var_5((type_1)(var_6 + 8),buf_00);
          var_16.redx = var_9;
          var_10 = var_5((type_1)(var_6 + 0xc),buf_00);
          var_16.redy = var_10;
          var_11 = var_5((type_1)(var_6 + 0x10),buf_00);
          var_16.greenx = var_11;
          var_12 = var_5((type_1)(var_6 + 0x14),buf_00);
          var_16.greeny = var_12;
          var_13 = var_5((type_1)(var_6 + 0x18),buf_00);
          var_16.bluex = var_13;
          var_16.bluey = var_5((type_1)(var_6 + 0x1c),buf_00);
          if (((((var_7 == -1) || (var_8 == -1)) || (var_9 == -1)) ||
              ((var_10 == -1 || (var_11 == -1)))) ||
             ((var_12 == -1 || ((var_13 == -1 || (var_16.bluey == -1)))))) {
            png_ptr_00 = png_ptr;
            (*(type_12 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_14 + 0x70c);
          }
          else {
            var_15 = (png_ptr->colorspace).flags;
            png_ptr_00 = png_ptr;
            if (-1 < (short)var_15) {
              if ((var_15 & 0x10) == 0) {
                (png_ptr->colorspace).flags = var_15 | 0x10;
                var_1 = (type_3)&var_16;
                var_17(png_ptr,&png_ptr->colorspace,(type_17 *)var_1,1);
                var_18(png_ptr,info_ptr);
              }
              else {
                (png_ptr->colorspace).flags = var_15 | 0x8000;
                var_18(png_ptr,info_ptr);
                (*(type_12 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_14 + -0x1a18);
              }
            }
          }
        }
      }
      else {
        var_3(png_ptr,var_1);
        (*(type_12 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_14 + 0x69c);
      }
    }
    else {
      var_3(png_ptr,var_1);
      (*(type_12 *)PTR_png_chunk_benign_error_0005349c)(png_ptr,var_14 + 0x68c);
    }
    if (var_19 == *(int *)puVar3) {
      return;
    }
    (*(type_12 *)PTR___stack_chk_fail_00053484)();
    unaff_s0 = png_ptr;
    unaff_s2 = info_ptr;
  }
  pcVar31 = png_handle_sRGB;
  ppVar20 = (type_2)(var_14 + 0x6a4);
  var_20 = PTR_png_chunk_error_0005351c;
  (*(type_12 *)PTR_png_chunk_error_0005351c)();
  var_25 = var_20 + 0x2ea14;
  puStack_84 = puVar3;
  var_31 = *(type_2 *)(var_20 + 0x26ee0);
  var_24 = var_31->width;
  var_23 = var_25;
  ppStack_88 = unaff_s0;
  ppStack_80 = unaff_s2;
  pcStack_7c = pcVar31;
  if ((png_ptr_00->mode & 1) == 0) {
    var_50 = (type_2)(*(int *)(var_20 + 0x26a40) + 0x6a4);
    (**(type_12 **)(var_20 + 0x26f40))();
    ppVar18 = png_ptr_00;
  }
  else {
    ppVar18 = png_ptr_00;
    if ((png_ptr_00->mode & 6) == 0) {
      if ((type_2)var_1 == (type_2)&var_21) {
        var_2(png_ptr_00,&bStack_8d,1);
        var_50 = (type_2)0x0;
        var_19 = var_3(png_ptr_00,0);
        if (var_19 == 0) {
          var_15 = (png_ptr_00->colorspace).flags;
          if (-1 < (short)var_15) {
            if ((var_15 & 4) == 0) {
              var_1 = (type_3)bStack_8d;
              var_22(png_ptr_00,&png_ptr_00->colorspace,var_1);
              ppVar18 = png_ptr_00;
              var_50 = ppVar20;
              var_18(png_ptr_00,ppVar20);
            }
            else {
              (png_ptr_00->colorspace).flags = var_15 | 0x8000;
              var_18(png_ptr_00,ppVar20);
              var_50 = (type_2)(*(int *)(var_23 + -0x7fd4) + 0x71c);
              ppVar18 = png_ptr_00;
              (**(type_12 **)(var_23 + -0x7b54))();
            }
          }
        }
      }
      else {
        var_3(png_ptr_00,var_1);
        var_50 = (type_2)(*(int *)(var_23 + -0x7fd4) + 0x69c);
        (**(type_12 **)(var_23 + -0x7b54))();
      }
    }
    else {
      var_3(png_ptr_00,var_1);
      var_50 = (type_2)(*(int *)(var_23 + -0x7fd4) + 0x68c);
      (**(type_12 **)(var_23 + -0x7b54))();
    }
    unaff_s0 = png_ptr_00;
    unaff_s2 = ppVar20;
    var_25 = var_23;
    if (var_24 == var_31->width) {
      return;
    }
  }
  var_26 = *(type_12 **)(var_25 + -0x7b6c);
  (*var_26)();
  var_28 = var_26 + 0x2e880;
  piVar25 = *(int **)(var_26 + 0x26d4c);
  var_27 = (type_2)(ppVar18->mode & 1);
  var_48 = *piVar25;
  ppVar20 = unaff_s2;
  pcVar31 = var_28;
  ppStack_d0 = unaff_s0;
  ppStack_cc = var_31;
  ppStack_c8 = unaff_s2;
  ppStack_c4 = unaff_s3;
  appStack_a0[0] = (type_2)var_1;
  if (var_27 == (type_2)0x0) goto LAB_0002cd34;
  if ((ppVar18->mode & 6) != 0) {
    var_3(ppVar18,var_1);
    (**(type_12 **)(var_28 + -0x7b54))(ppVar18,*(int *)(var_28 + -0x7fd4) + 0x68c);
    goto LAB_0002c8bc;
  }
  if (var_1 < (type_2)0xe) {
    var_3(ppVar18,var_1);
    (**(type_12 **)(var_28 + -0x7b54))(ppVar18,*(int *)(var_28 + -0x7fd4) + 0x237c);
    goto LAB_0002c8bc;
  }
  var_15 = (ppVar18->colorspace).flags;
  if ((short)var_15 < 0) {
    var_3(ppVar18,var_1);
    goto LAB_0002c8bc;
  }
  if ((var_15 & 4) == 0) {
    var_31 = (type_2)0x51;
    if (var_1 < (type_2)0x51) {
      var_31 = (type_2)var_1;
    }
    ppVar20 = apStack_5ac;
    ppVar22 = var_31;
    var_2(ppVar18,(type_19)ppVar20,(type_3)var_31);
    appStack_a0[0] = (type_2)((int)appStack_a0[0] - (int)var_31);
    if (appStack_a0[0] < (type_2)0xb) {
      var_29(ppVar18);
      return;
    }
    var_30 = (char *)((int)&apStack_5ac[0].width + 1);
    var_1 = (type_3)ppVar22;
    if (apStack_5ac[0].width._0_1_ == '\0') {
LAB_0002c974:
      var_31 = (type_2)(*(int *)(var_28 + -0x7fd4) + 0x748);
    }
    else {
      do {
        ppVar22 = var_27;
        var_32 = (type_2)((int)&ppVar22->width + 1);
        var_27 = ppVar22;
        if (*var_30 == '\0') goto LAB_0002c86c;
        var_27 = (type_2)((int)&ppVar22->width + 1);
        if (var_27 == (type_2)0x50) goto LAB_0002c974;
        var_30 = var_30 + 1;
      } while (var_31 != var_27);
      var_32 = (type_2)((int)&ppVar22->width + 2);
LAB_0002c86c:
      if ((var_32 < var_31) &&
         (var_32->signature[(int)(apStack_5ac[0].signature + -0x40)] == '\0')) {
        var_19 = var_33(ppVar18,0x69434350);
        if (var_19 != 0) {
          var_31 = (type_2)(ppVar18->zstream).msg;
          var_1 = (type_3)appStack_a0[0];
          goto LAB_0002ca50;
        }
        var_42 = &apStack_5ac[0].colorspace.end_points_XYZ.red_Z;
        (**(type_12 **)(var_28 + -0x7c5c))(var_42,0,0x84);
        ppVar2 = &var_27->width;
        var_34 = ppVar18->zowner;
        var_35 = ppVar18->chunk_name;
        var_27 = (type_2)((int)var_31 + (-2 - (int)var_27));
        var_37 = (type_7 *)0x84;
        (ppVar18->zstream).next_in =
             (type_19)((int)ppVar2 + 2) + (int)(ppVar20->signature + -0x20);
        (ppVar18->zstream).avail_in = (type_20)var_27;
        if (var_34 == var_35) {
          var_19 = *(int *)(var_28 + -0x7e0c);
          (ppVar18->zstream).next_out = (type_21 *)var_42;
          read_buffer = &apStack_5ac[0].hist;
          (ppVar18->zstream).avail_out = 0;
          var_36(ppVar18,(type_19)read_buffer,(type_20)appStack_a0,
                           (png_uint_32p)&var_37,(type_19)0x0,in_stack_fffffa24,(int)var_28);
          if (var_37 == (type_7 *)0x0) {
            ppStack_5c4 = &ppVar18->colorspace;
            ppStack_5d0 = (type_2)
                          ((type_9)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._0_1_ * 0x1000000 +
                           (type_9)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._1_1_ * 0x10000 +
                           (type_9)(type_16)apStack_5ac[0].colorspace.end_points_XYZ.red_Z +
                          (type_9)apStack_5ac[0].colorspace.end_points_XYZ.red_Z._2_1_ * 0x100);
            var_1 = (type_3)ppVar20;
            var_4 = var_38
                              (ppVar18,ppStack_5c4,(type_22)ppVar20,(type_3)ppStack_5d0
                              );
            if ((var_4 == 0) ||
               (var_1 = (type_3)ppVar20,
               var_4 = var_39
                                 (ppVar18,ppStack_5c4,(type_22)ppVar20,
                                  (type_3)ppStack_5d0,(type_10)var_42,
                                  (type_9)ppVar18->color_type), var_4 == 0)) {
LAB_0002caf4:
              ppVar18->zowner = 0;
              var_3(ppVar18,(type_3)appStack_a0[0]);
              (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
              var_18(ppVar18,var_50);
              unaff_s2 = ppVar20;
              goto LAB_0002c8bc;
            }
            var_1 = (type_3)&var_40;
            var_27 = (type_2)var_41(ppVar18,(type_13)ppStack_5d0,2);
            if (var_27 == (type_2)0x0) {
              var_19 = *(int *)(var_28 + -0x7fd4);
              ppVar18->zowner = 0;
              var_31 = (type_2)(var_19 + -0x184);
            }
            else {
              var_31 = var_27;
              do {
                var_43 = var_42 + 4;
                pVar23 = var_42[1];
                var_34 = var_42[2];
                var_35 = var_42[3];
                var_31->width = *var_42;
                var_31->height = pVar23;
                var_31->valid = var_34;
                var_31->rowbytes = var_35;
                var_31 = (type_2)&var_31->palette;
                var_42 = var_43;
              } while ((type_19 *)var_43 != &apStack_5ac[0].eXIf_buf);
              *(type_23 *)var_31 = (type_23)*var_43;
              var_4 = (type_9)apStack_5ac[0].eXIf_buf._0_1_ * 0x1000000 +
                      (type_9)apStack_5ac[0].eXIf_buf._1_1_ * 0x10000 +
                      (type_9)(type_16)apStack_5ac[0].eXIf_buf +
                      (type_9)apStack_5ac[0].eXIf_buf._2_1_ * 0x100;
              var_47 = (type_7 *)(var_4 * 0xc);
              var_37 = var_47;
              if (ppVar18->zowner == ppVar18->chunk_name) {
                (ppVar18->zstream).next_out = (type_21 *)&var_27->max_text;
                (ppVar18->zstream).avail_out = 0;
                (*(type_12 *)(var_19 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&var_37,0);
              }
              else {
                (ppVar18->zstream).msg = (char *)(*(int *)(var_28 + -0x7fd4) + 0x660);
              }
              if (var_37 != (type_7 *)0x0) goto LAB_0002ca44;
              var_1 = (type_3)ppVar20;
              var_45 = var_44
                                 (ppVar18,ppStack_5c4,(type_22)ppVar20,
                                  (type_3)ppStack_5d0,(type_10)var_27);
              if (var_45 == 0) goto LAB_0002caf4;
              var_37 = (type_7 *)((int)ppStack_5d0 + var_4 * -0xc + -0x84);
              if (ppVar18->zowner != ppVar18->chunk_name) {
                (ppVar18->zstream).msg = (char *)(*(int *)(var_28 + -0x7fd4) + 0x660);
                var_46();
                return;
              }
              (ppVar18->zstream).next_out =
                   (type_19)((int)(var_47 + 0x21) + (int)(var_27->signature + -0x20));
              (ppVar18->zstream).avail_out = 0;
              (*(type_12 *)(var_19 + -0x47c4))(ppVar18,read_buffer,appStack_a0,&var_37,1);
              var_1 = (type_3)appStack_a0[0];
              pcVar31 = var_28;
              if (appStack_a0[0] == (type_2)0x0) {
                if (var_37 == (type_7 *)0x0) goto LAB_0002cd68;
                goto LAB_0002ce38;
              }
              var_47 = var_37;
              if ((int)(ppVar18->flags << 0xb) < 0) goto LAB_0002cd44;
              var_19 = *(int *)(var_28 + -0x7fd4);
              ppVar18->zowner = 0;
              var_31 = (type_2)(var_19 + 0x674);
            }
            goto LAB_0002c900;
          }
        }
        else {
          (ppVar18->zstream).msg = (char *)(*(int *)(var_28 + -0x7fd4) + 0x660);
        }
LAB_0002ca44:
        var_31 = (type_2)(ppVar18->zstream).msg;
        ppVar18->zowner = 0;
        var_1 = (type_3)appStack_a0[0];
        goto LAB_0002ca50;
      }
      var_31 = (type_2)(*(int *)(var_28 + -0x7fd4) + 0x730);
    }
  }
  else {
    var_31 = (type_2)(*(int *)(var_26 + 0x268ac) + 0x71c);
  }
LAB_0002c900:
  var_3(ppVar18,(type_3)appStack_a0[0]);
  (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
  var_18(ppVar18,var_50);
LAB_0002c934:
  pcVar31 = *(type_12 **)(var_28 + -0x7b54);
  do {
    (*pcVar31)(ppVar18,var_31);
    unaff_s2 = var_31;
LAB_0002c8bc:
    do {
      while( true ) {
        if (var_48 == *piVar25) {
          return;
        }
        pcVar31 = var_28;
        (**(type_12 **)(var_28 + -0x7b6c))();
        var_31 = var_50;
        ppVar20 = unaff_s2;
        unaff_s8 = ppVar18;
LAB_0002cd34:
        ppVar18 = unaff_s8;
        var_50 = var_31;
        var_47 = (type_7 *)(**(type_12 **)(var_28 + -0x7ad4))();
LAB_0002cd44:
        if (var_47 != (type_7 *)0x0) break;
        (**(type_12 **)(var_28 + -0x7c88))(ppVar18,*(int *)(var_28 + -0x7fd4) + 0x674);
        var_28 = pcVar31;
LAB_0002cd68:
        var_3(ppVar18,(type_3)appStack_a0[0]);
        var_1 = (type_3)var_27;
        var_49(ppVar18,ppStack_5c4,(type_10)var_27,(ppVar18->zstream).adler);
        if (var_50 != (type_2)0x0) {
          var_1 = 0x10;
          (**(type_12 **)(var_28 + -0x7cb0))(ppVar18,var_50,0x10,0);
          var_52 = (type_8)var_51(ppVar18,(type_13)var_32);
          var_50->iccp_name = var_52;
          if (var_52 == (type_8)0x0) {
            (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
            var_18(ppVar18,var_50);
            var_15 = (ppVar18->colorspace).flags;
            ppVar18->zowner = 0;
            (ppVar18->colorspace).flags = var_15 | 0x8000;
            var_18(ppVar18,var_50);
            var_31 = (type_2)(*(int *)(var_28 + -0x7fd4) + -0x184);
            goto LAB_0002c934;
          }
          (**(type_12 **)(var_28 + -0x7b2c))(var_52,ppVar20,var_32);
          var_53 = var_50->free_me;
          var_54 = var_50->valid;
          var_50->iccp_profile = (type_19)var_27;
          var_50->iccp_proflen = (type_3)ppStack_5d0;
          ppVar18->read_buffer = (type_19)0x0;
          var_50->free_me = var_53 | 0x10;
          var_50->valid = var_54 | 0x1000;
          var_1 = (type_3)ppStack_5d0;
          var_18(ppVar18,var_50);
        }
        ppVar18->zowner = 0;
        unaff_s2 = ppVar20;
      }
LAB_0002ce38:
      var_31 = (type_2)(ppVar18->zstream).msg;
      ppVar18->zowner = 0;
      var_28 = pcVar31;
LAB_0002ca50:
      var_3(ppVar18,var_1);
      (ppVar18->colorspace).flags = (ppVar18->colorspace).flags | 0x8000;
      var_18(ppVar18,var_50);
      unaff_s2 = var_31;
    } while (var_31 == (type_2)0x0);
    pcVar31 = *(type_12 **)(var_28 + -0x7b54);
  } while( true );
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (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: (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: (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)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (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: (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: (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 (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: (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 (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: (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: (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 (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))))))))) alternative: (else_clause (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)))))))) (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (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: (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))) (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (primitive_type) 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: (primitive_type) 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: (primitive_type) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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 (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: (primitive_type) 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: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (primitive_type) 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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) right: (char_literal (escape_sequence)))))) 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: (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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (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) (identifier) (pointer_expression argument: (identifier)) (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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)) (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))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (primitive_type) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (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: (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: (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: (primitive_type) 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: (primitive_type) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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: (primitive_type) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (primitive_type) 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: (primitive_type) 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: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (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) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (break_statement)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (primitive_type) 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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (primitive_type) 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(int param_1,int *param_2,int *param_3)

{
  ushort uVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  char *pcVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  uint uVar10;
  int *piVar11;
  int *piVar12;
  int iVar13;
  int iVar14;
  int unaff_s0;
  int *piVar15;
  int *piVar16;
  int *unaff_s2;
  undefined1 *unaff_s3;
  byte *pbVar17;
  byte *pbVar18;
  int *piVar19;
  int *piVar20;
  int *unaff_s6;
  undefined *puVar21;
  code *pcVar22;
  undefined *puVar23;
  int unaff_s8;
  code *pcVar24;
  int *piStack_5d0;
  int iStack_5c4;
  int *piStack_5b0;
  undefined4 uStack_5ac;
  byte bStack_558;
  byte bStack_557;
  byte bStack_556;
  byte bStack_555;
  undefined4 auStack_554 [31];
  byte bStack_4d8;
  byte bStack_4d7;
  byte bStack_4d6;
  byte bStack_4d5;
  undefined1 auStack_4d4 [1024];
  int iStack_d4;
  int iStack_d0;
  int *piStack_cc;
  int *piStack_c8;
  undefined1 *puStack_c4;
  int *apiStack_a0 [2];
  undefined *puStack_98;
  byte bStack_8d;
  int iStack_8c;
  int iStack_88;
  undefined *puStack_84;
  int *piStack_80;
  code *pcStack_7c;
  int local_5c;
  int local_58;
  int local_54;
  int local_50;
  int local_4c;
  int local_48;
  int local_44;
  int local_40;
  undefined1 auStack_3c [4];
  undefined1 auStack_38 [4];
  undefined1 auStack_34 [4];
  undefined1 auStack_30 [4];
  undefined1 auStack_2c [4];
  undefined1 auStack_28 [4];
  undefined1 auStack_24 [4];
  undefined1 auStack_20 [4];
  int local_1c;
  
  puVar6 = PTR___stack_chk_guard_000534bc;
  local_1c = *(int *)PTR___stack_chk_guard_000534bc;
  iVar8 = param_1;
  if ((*(uint *)(param_1 + 0x124) & 1) != 0) {
    if ((*(uint *)(param_1 + 0x124) & 6) == 0) {
      if (param_3 == (int *)0x20) {
        unaff_s3 = auStack_3c;
        FUN_0002aef8(param_1,unaff_s3);
        iVar2 = FUN_0002b068(param_1,0);
        if (iVar2 == 0) {
          iVar8 = FUN_0002acb0(unaff_s3);
          local_44 = iVar8;
          iVar2 = FUN_0002acb0(auStack_38);
          local_40 = iVar2;
          iVar7 = FUN_0002acb0(auStack_34);
          local_5c = iVar7;
          iVar13 = FUN_0002acb0(auStack_30);
          local_58 = iVar13;
          iVar14 = FUN_0002acb0(auStack_2c);
          local_54 = iVar14;
          iVar3 = FUN_0002acb0(auStack_28);
          local_50 = iVar3;
          iVar4 = FUN_0002acb0(auStack_24);
          local_4c = iVar4;
          local_48 = FUN_0002acb0(auStack_20);
          if (((((iVar8 == -1) || (iVar2 == -1)) || (iVar7 == -1)) ||
              ((iVar13 == -1 || (iVar14 == -1)))) ||
             ((iVar3 == -1 || ((iVar4 == -1 || (local_48 == -1)))))) {
            iVar8 = param_1;
            (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x70c);
          }
          else {
            uVar1 = *(ushort *)(param_1 + 0x3e2);
            iVar8 = param_1;
            if (-1 < (short)uVar1) {
              if ((uVar1 & 0x10) == 0) {
                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x10;
                param_3 = &local_5c;
                FUN_00017e00(param_1,param_1 + 0x398,param_3,1);
                FUN_00015834(param_1,param_2);
              }
              else {
                *(ushort *)(param_1 + 0x3e2) = uVar1 | 0x8000;
                FUN_00015834(param_1,param_2);
                (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + -0x1a18);
              }
            }
          }
        }
      }
      else {
        FUN_0002b068(param_1,param_3);
        (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x69c);
      }
    }
    else {
      FUN_0002b068(param_1,param_3);
      (*(code *)PTR_png_chunk_benign_error_0005349c)(param_1,PTR_s_nt_0005301c + 0x68c);
    }
    if (local_1c == *(int *)puVar6) {
      return;
    }
    (*(code *)PTR___stack_chk_fail_00053484)();
    unaff_s0 = param_1;
    unaff_s2 = param_2;
  }
  pcVar24 = FUN_0002c5dc;
  piVar11 = (int *)(PTR_s_nt_0005301c + 0x6a4);
  puVar21 = PTR_png_chunk_error_0005351c;
  (*(code *)PTR_png_chunk_error_0005351c)();
  puVar23 = puVar21 + 0x2ea14;
  puStack_84 = puVar6;
  piVar16 = *(int **)(puVar21 + 0x26ee0);
  iStack_8c = *piVar16;
  puStack_98 = puVar23;
  iStack_88 = unaff_s0;
  piStack_80 = unaff_s2;
  pcStack_7c = pcVar24;
  if ((*(uint *)(iVar8 + 0x124) & 1) == 0) {
    piVar12 = (int *)(*(int *)(puVar21 + 0x26a40) + 0x6a4);
    (**(code **)(puVar21 + 0x26f40))();
    iVar2 = iVar8;
  }
  else {
    iVar2 = iVar8;
    if ((*(uint *)(iVar8 + 0x124) & 6) == 0) {
      if (param_3 == (int *)0x1) {
        FUN_0002aef8();
        piVar12 = (int *)0x0;
        iVar7 = FUN_0002b068();
        if (iVar7 == 0) {
          uVar1 = *(ushort *)(iVar8 + 0x3e2);
          if (-1 < (short)uVar1) {
            if ((uVar1 & 4) == 0) {
              param_3 = (int *)(uint)bStack_8d;
              FUN_00018198(iVar8,iVar8 + 0x398);
              iVar2 = iVar8;
              piVar12 = piVar11;
              FUN_00015834();
            }
            else {
              *(ushort *)(iVar8 + 0x3e2) = uVar1 | 0x8000;
              FUN_00015834(iVar8,piVar11);
              piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x71c);
              iVar2 = iVar8;
              (**(code **)(puStack_98 + -0x7b54))();
            }
          }
        }
      }
      else {
        FUN_0002b068();
        piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x69c);
        (**(code **)(puStack_98 + -0x7b54))();
      }
    }
    else {
      FUN_0002b068();
      piVar12 = (int *)(*(int *)(puStack_98 + -0x7fd4) + 0x68c);
      (**(code **)(puStack_98 + -0x7b54))();
    }
    unaff_s0 = iVar8;
    unaff_s2 = piVar11;
    puVar23 = puStack_98;
    if (iStack_8c == *piVar16) {
      return;
    }
  }
  pcVar24 = *(code **)(puVar23 + -0x7b6c);
  (*pcVar24)();
  piVar15 = *(int **)(pcVar24 + 0x26d4c);
  piVar19 = (int *)(*(uint *)(iVar2 + 0x124) & 1);
  iStack_d4 = *piVar15;
  piVar11 = unaff_s2;
  iStack_d0 = unaff_s0;
  piStack_cc = piVar16;
  piStack_c8 = unaff_s2;
  puStack_c4 = unaff_s3;
  apiStack_a0[0] = param_3;
  if (piVar19 == (int *)0x0) goto LAB_0002cd34;
  if ((*(uint *)(iVar2 + 0x124) & 6) == 0) {
    if ((int *)0xd < param_3) {
      if ((short)*(ushort *)(iVar2 + 0x3e2) < 0) {
        FUN_0002b068();
        goto LAB_0002c8bc;
      }
      if ((*(ushort *)(iVar2 + 0x3e2) & 4) != 0) {
        piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x71c);
LAB_0002c900:
        FUN_0002b068(iVar2,apiStack_a0[0]);
        *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
        FUN_00015834(iVar2,piVar12);
        goto LAB_0002c934;
      }
      piVar16 = (int *)0x51;
      if (param_3 < (int *)0x51) {
        piVar16 = param_3;
      }
      piVar11 = &uStack_5ac;
      param_3 = piVar16;
      FUN_0002aef8();
      apiStack_a0[0] = (int *)((int)apiStack_a0[0] - (int)piVar16);
      if ((int *)0xa < apiStack_a0[0]) {
        pcVar5 = (char *)((int)&uStack_5ac + 1);
        if (uStack_5ac._0_1_ == '\0') {
LAB_0002c974:
          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x748);
        }
        else {
          do {
            piVar20 = piVar19;
            unaff_s6 = (int *)((int)piVar20 + 1);
            piVar19 = piVar20;
            if (*pcVar5 == '\0') goto LAB_0002c86c;
            piVar19 = (int *)((int)piVar20 + 1);
            if (piVar19 == (int *)0x50) goto LAB_0002c974;
            pcVar5 = pcVar5 + 1;
          } while (piVar16 != piVar19);
          unaff_s6 = (int *)((int)piVar20 + 2);
LAB_0002c86c:
          if ((unaff_s6 < piVar16) && (*(char *)((int)&uStack_5ac + (int)unaff_s6) == '\0')) {
            iVar8 = FUN_0002a9cc(iVar2,0x69434350);
            if (iVar8 != 0) {
              piVar16 = *(int **)(iVar2 + 0x14c);
              param_3 = apiStack_a0[0];
              goto LAB_0002ca50;
            }
            (**(code **)(pcVar24 + 0x26c24))(&bStack_558,0,0x84);
            puVar6 = (undefined *)((int)piVar19 + 2);
            piVar19 = (int *)((int)piVar16 + (-2 - (int)piVar19));
            piStack_5b0 = (int *)0x84;
            *(undefined **)(iVar2 + 0x134) = (undefined *)((int)piVar11 + (int)puVar6);
            *(int **)(iVar2 + 0x138) = piVar19;
            if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {
              iVar8 = *(int *)(pcVar24 + 0x26a74);
              *(byte **)(iVar2 + 0x140) = &bStack_558;
              *(undefined4 *)(iVar2 + 0x144) = 0;
              FUN_0002b83c(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);
              if (piStack_5b0 == (int *)0x0) {
                iStack_5c4 = iVar2 + 0x398;
                piStack_5d0 = (int *)((uint)bStack_558 * 0x1000000 + (uint)bStack_557 * 0x10000 +
                                      (uint)bStack_555 + (uint)bStack_556 * 0x100);
                param_3 = piVar11;
                iVar7 = FUN_000158a4(iVar2,iStack_5c4,piVar11,piStack_5d0);
                if ((iVar7 != 0) &&
                   (param_3 = piVar11,
                   iVar7 = FUN_0001596c(iVar2,iStack_5c4,piVar11,piStack_5d0,&bStack_558,
                                        *(undefined1 *)(iVar2 + 0x1ff)), iVar7 != 0)) {
                  param_3 = (int *)0x2;
                  piVar19 = (int *)FUN_0002ab84(iVar2,piStack_5d0,2);
                  if (piVar19 == (int *)0x0) {
                    iVar8 = *(int *)(pcVar24 + 0x268ac);
                    *(undefined4 *)(iVar2 + 0x130) = 0;
                    piVar16 = (int *)(iVar8 + -0x184);
                    goto LAB_0002c900;
                  }
                  piVar16 = piVar19;
                  pbVar17 = &bStack_558;
                  do {
                    pbVar18 = pbVar17 + 0x10;
                    iVar14 = *(int *)(pbVar17 + 4);
                    iVar13 = *(int *)(pbVar17 + 8);
                    iVar7 = *(int *)(pbVar17 + 0xc);
                    *piVar16 = *(int *)pbVar17;
                    piVar16[1] = iVar14;
                    piVar16[2] = iVar13;
                    piVar16[3] = iVar7;
                    piVar16 = piVar16 + 4;
                    pbVar17 = pbVar18;
                  } while (pbVar18 != &bStack_4d8);
                  *piVar16 = *(int *)pbVar18;
                  iVar7 = (uint)bStack_4d8 * 0x1000000 + (uint)bStack_4d7 * 0x10000 +
                          (uint)bStack_4d5 + (uint)bStack_4d6 * 0x100;
                  piVar16 = (int *)(iVar7 * 0xc);
                  piStack_5b0 = piVar16;
                  if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {
                    *(int **)(iVar2 + 0x140) = piVar19 + 0x21;
                    *(undefined4 *)(iVar2 + 0x144) = 0;
                    (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,0);
                  }
                  else {
                    *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;
                  }
                  if (piStack_5b0 != (int *)0x0) goto LAB_0002ca44;
                  param_3 = piVar11;
                  iVar13 = FUN_00015dd8(iVar2,iStack_5c4,piVar11,piStack_5d0,piVar19);
                  if (iVar13 != 0) {
                    piStack_5b0 = piStack_5d0 + iVar7 * -3 + -0x21;
                    if (*(int *)(iVar2 + 0x130) == *(int *)(iVar2 + 0x1cc)) {
                      *(undefined **)(iVar2 + 0x140) =
                           (undefined *)((int)piVar19 + (int)(piVar16 + 0x21));
                      *(undefined4 *)(iVar2 + 0x144) = 0;
                      (*(code *)(iVar8 + -0x47c4))(iVar2,auStack_4d4,apiStack_a0,&piStack_5b0,1);
                    }
                    else {
                      *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;
                    }
                    param_3 = apiStack_a0[0];
                    if (apiStack_a0[0] == (int *)0x0) {
                      if (piStack_5b0 == (int *)0x0) goto LAB_0002cd68;
                      goto LAB_0002ce38;
                    }
                    piVar16 = piStack_5b0;
                    if (*(int *)(iVar2 + 0x128) << 0xb < 0) goto LAB_0002cd44;
                    iVar8 = *(int *)(pcVar24 + 0x268ac);
                    *(undefined4 *)(iVar2 + 0x130) = 0;
                    piVar16 = (int *)(iVar8 + 0x674);
                    goto LAB_0002c900;
                  }
                }
                *(undefined4 *)(iVar2 + 0x130) = 0;
                FUN_0002b068(iVar2,apiStack_a0[0]);
                *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
                FUN_00015834(iVar2,piVar12);
                unaff_s2 = piVar11;
                goto LAB_0002c8bc;
              }
            }
            else {
              *(int *)(iVar2 + 0x14c) = *(int *)(pcVar24 + 0x268ac) + 0x660;
            }
LAB_0002ca44:
            piVar16 = *(int **)(iVar2 + 0x14c);
            *(undefined4 *)(iVar2 + 0x130) = 0;
            param_3 = apiStack_a0[0];
            goto LAB_0002ca50;
          }
          piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + 0x730);
        }
        goto LAB_0002c900;
      }
    }
    FUN_0002b068();
    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x237c);
    unaff_s2 = piVar11;
  }
  else {
    FUN_0002b068();
    (**(code **)(pcVar24 + 0x26d2c))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x68c);
  }
LAB_0002c8bc:
  while( true ) {
    if (iStack_d4 == *piVar15) {
      return;
    }
    (**(code **)(pcVar24 + 0x26d14))();
    piVar16 = piVar12;
    piVar11 = unaff_s2;
    unaff_s8 = iVar2;
LAB_0002cd34:
    iVar2 = unaff_s8;
    piVar12 = piVar16;
    piVar16 = (int *)(**(code **)(pcVar24 + 0x26dac))();
LAB_0002cd44:
    if (piVar16 != (int *)0x0) goto LAB_0002ce38;
    (**(code **)(pcVar24 + 0x26bf8))(iVar2,*(int *)(pcVar24 + 0x268ac) + 0x674);
LAB_0002cd68:
    FUN_0002b068(iVar2,apiStack_a0[0]);
    param_3 = piVar19;
    FUN_0001839c(iVar2,iStack_5c4,piVar19,*(undefined4 *)(iVar2 + 0x164));
    if (piVar12 != (int *)0x0) break;
LAB_0002ce24:
    *(undefined4 *)(iVar2 + 0x130) = 0;
    unaff_s2 = piVar11;
  }
  param_3 = (int *)0x10;
  (**(code **)(pcVar24 + 0x26bd0))(iVar2,piVar12,0x10,0);
  iVar8 = FUN_0001c240(iVar2,unaff_s6);
  piVar12[0x1d] = iVar8;
  if (iVar8 != 0) {
    (**(code **)(pcVar24 + 0x26d54))(iVar8,piVar11,unaff_s6);
    uVar10 = piVar12[0x3d];
    uVar9 = piVar12[2];
    piVar12[0x1e] = (int)piVar19;
    piVar12[0x1f] = (int)piStack_5d0;
    *(undefined4 *)(iVar2 + 0x374) = 0;
    piVar12[0x3d] = uVar10 | 0x10;
    piVar12[2] = uVar9 | 0x1000;
    param_3 = piStack_5d0;
    FUN_00015834(iVar2,piVar12);
    goto LAB_0002ce24;
  }
  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
  FUN_00015834(iVar2,piVar12);
  *(undefined4 *)(iVar2 + 0x130) = 0;
  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
  FUN_00015834(iVar2,piVar12);
  piVar16 = (int *)(*(int *)(pcVar24 + 0x268ac) + -0x184);
LAB_0002c934:
  pcVar22 = *(code **)(pcVar24 + 0x26d2c);
  goto LAB_0002c938;
LAB_0002ce38:
  piVar16 = *(int **)(iVar2 + 0x14c);
  *(undefined4 *)(iVar2 + 0x130) = 0;
LAB_0002ca50:
  FUN_0002b068(iVar2,param_3);
  *(ushort *)(iVar2 + 0x3e2) = *(ushort *)(iVar2 + 0x3e2) | 0x8000;
  FUN_00015834(iVar2,piVar12);
  unaff_s2 = piVar16;
  if (piVar16 != (int *)0x0) {
    pcVar22 = *(code **)(pcVar24 + 0x26d2c);
LAB_0002c938:
    (*pcVar22)(iVar2,piVar16);
    unaff_s2 = piVar16;
  }
  goto LAB_0002c8bc;
}

